1.变量内容的删除和替换
${变量#关键词} 从头开始检查关键词,将符合的最短数据删除
${变量##关键词} 从头开始检查关键词,将符合的最长数据删除
${变量%关键词} 从尾开始检查关键词,将符合的最短数据删除
${变量%%关键词} 从尾开始检查关键词,将符合的最长数据删除
${变量/旧字符串/新字符串} 若符合旧字符串,则第一个旧字符串被替换
${变量//旧字符串/新字符串} 若符合旧字符串,则全部旧字符串被替换
2. 变量内容的设定和替换
一次变量置换:
变量没有值:
echo ${a:=abc} //若a没有值,就送给a一个abc,作为它的值,这时a的值就永久是abc了,直到下次修改。
//下面例子不常用
echo ${a:?必须需要给变量一个值} //若a没有值,则提示"必须需要给变量一个值"
echo ${a:-abc} //若a没有值,就借给a一个值,次命令执行完后,a还是空值。
变量有值
echo ${a:+123} //临时替换变量的值; a=1; expr ${a:+123} – 1;其值为122
二次变量置换
示例一:
A=B
a=1
B1="B值"
eval echo \$$A$a > B1.txt //注意:这里不能直接用反撇号获取二次置换的结果。
C=`cat B1.txt` //如此就可以获取B1的变量值了.
示例二:
FAIL="echo -e \"\n\e[31m\${FMSG}\e[0m\n\""
FMSG="需要红色提示显示的字符串。" && eval ${FAIL}
示例三:
grep的结果:"APPDIR="/home/abc/bin“" 通过eval可以直接将APPDIR转换为赋值语句执行。
eval `grep '^ .*APPDIR' /etc/tuxconfig`
echo ${APPDIR} //这样就可以输出APPDIR的值。
shell中数组相关操作: —【注:shell中的数组不能做为export导出的对象,因此它仅不能作为环境变量】
变量名=(Value1 Value2 Value3 Value4)
a=(1 2 3 4 5)
例子:
Cpu(s): 1.0%us, 0.5%sy, 0.0%ni, 98.5%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
a=(`top -n5 -d1 | awk '$1~/Cpu\(s\):/{print $2}' | awk -F'%' '{print $1}' | xargs -n5`)
查数组成员数
echo ${#a[*]} —>前面加“#”,表示查看数组有多少个成员
查看成员值
echo ${a[0]} —>第一个数组成员的值为 1.
echo ${a[*]} 或 echo ${a[@]} —>查看所以成员的值
declare -p a —>查看所有数组成员。
echo ${a[*]:1:3} —>查看数组中下标为1~3的成员值