bash shell 的变量处理

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的成员值

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值