BASH变量测试和样式对比
2012-10-02 21:15
246 查看
unset myname r=${myname-'Basher'} echo $r 结果为Basher
测试存在与否
myname= r=${myname:-'Basher'} echo $r 结果为Basher
变量不存在或其值为空,传回默认值
unset conut r=${count:=100} echo $count 结果100
变量不存在或为空,赋一个默认值给变量
fn=${1:?'error!please remove the dir'} 没有传参,则打印错误信息
变量不存在或为空,打印提示信息
IamHappy='Feel so good' r=${IamHappy:+"$@"} echo $r 结果为所有传递的参数
变量存在,则返回一个值
myname="sheller man" substr=${myname:4} echo $substr 显示ler man #vi test.bash #!/bin/bash echo $0 echo ${@:1} #./test.bash aa bb cc dd aa bb cc dd 将${@:1}改为${@:2}时,结果为: bb cc dd 显示指定参数数字之后的参数 将${@:2}改为${@:2:2},结果为: bb cc 显示指定参数数字之后的参数个数
截取字符串
filename="/usr/sbin/ntpdate" echo ${$filename} 结果:17 echo ${#数组[@]} 取得数组元素的个数
计算字符串长度
===========
TEST="/usr/bin/date" echo ${TEST#/*/} 由前面对比,删最短的,结果:bin/date
TEST="/usr/bin/date" echo ${TEST##/*/} 由前面对比,删最长的,结果:date
TEST="/usr/bin/date" echo ${TEST%/*} 由字符串后面对比,删除最短的,结果:/usr/bin
TEST="www.test.com.cn" echo ${TEST%%.*} 由后面对比,删最长的,结果:www
TEST="mail:x:8:8:mail:/var/mail:/bin/sh" R=${TEST/:/,} echo $R 只替换第一个对比符合的字符串,结果:mail,x:8:8:mail:/var/mail:/bin/sh
TEST="mail:x:8:8:mail:/var/mail:/bin/sh" R=${TEST//:/,} echo $R 替换全部对比符合的字符串,结果为:mail,x,8,8,mail,/var/mail,/bin/sh
TEST="mail:x:8:8:mail:/var/mail:/bin/sh" R=${TEST/:/} echo $R 删除第一个符合样式的字符串,结果:mailx:8:8:mail:/var/mail:/bin/sh
TEST="mail:x:8:8:mail:/var/mail:/bin/sh" R=${TEST//:/} echo $R 删除所有符合的,结果:mailx88mail/var/mail/bin/sh
str="yes, This is a TITLE." r=${str/#T* /} echo $r 行2要对比的是:位置在句首,T字符后接的任意长度的字符,最后以空格符结尾的字符串,因$str中无此样式,所以,整个str变量值原封不动的传回给r。 如果把行2样式改为${str/T* /},表示样式不一定要位于句首,那么就符合了条件,对比到的字符串是This is a,删除后,r的值为yes,TITLE。
==========
取得数组索引列表:
TEST=(a b c d e f) for i in "${!TEST[@]}" do echo "$i: ${TEST[$i]}" done 运行结果: 0: a 1: b 2: c 3: d 4: e 5: f
命令替换:
tmp=$(ifconfig eth0 | grep 'inet addr') r=${tmp/inet addr:/}#取出匹配字符之后的内容 ip=${r/ Bcast*/} #删除变量r中匹配字符内容 echo $ip 显示 ip地址
========
算数运算:
I=$((1+2)) echo $I 得到3,如果不加括号,则只能得到“1+2” 有多种方法实现: $r=`expr 1+2` $r=[1+2] let $r=1+2
相关文章推荐
- bash脚本编程之四——整数测试及特殊变量
- bash笔记之变量,引用,测试
- bash编程脚本之二 整数测试及特殊变量
- bash条件测试及变量比较
- bash变量-数值运算与运算符/变量测试与内容替换/环境变量配置文件
- [Shell]Bash变量:变量测试与内容替换
- bash脚本编程之四,整数测试以及特殊变量
- 菜鸟学Linux 第016篇笔记 bash脚本之文件测试,变量类型
- bash脚本编程之四——整数测试及特殊变量
- Linux基础入门及系统管理01-bash脚本编程之四文件测试及特殊变量19
- linux笔记 第六天 bash编程入门之变量、条件判断、条件测试和for循环等
- bash变量测试与变量替换
- 6-1 bash脚本编程之四 整数测试及特殊变量
- Shell基础-Bash变量-变量测试与内容替换
- bash脚本-表达式,&&,||,if,整数测试,let,文件测试,$特殊变量
- bash变量测试与内容替换-61
- 第六课-第一讲06_01_bash脚本编程之四 整数测试及特殊变量
- 2016-3-6 linux基础学习13——条件判断、文件测试、bash变量类型
- Oracle 10g中一个关于绑定变量和非绑定变量的测试对比
- 使用绑定变量和不使用绑定变量的效率对比测试——《Oracle高效设计》学习笔记