《鸟哥的Linux私房菜》之shell中的变量

1、变量的定义
  var=value
  直接使用key=value的形式,等号中间不能有空格等空白字符

2、变量的输出
  echo ${varName}
  通过echo输出内容 ${xxx}表示引用某个叫xxx的变量
  Note:如果echo 后是'',那么单引号内的内容原样输出 ,如果是""那么双引号内的内容可能会经过"计算"后再
  输出,如果要输出的内容有特殊字符要么通过转义字符使用单引号
3、取消变量
  unset varName
4、$( someCommand ) 或者 ` someCommand ` 表示先执行()和``中间的命令
5、使用env/set/export查看环境变量
6、$RANDOM生成随机数
7、$表示当前进程的PID,?表示上一条命令的返回值(0代表成功,否则代表失败)
   所以可以使用$?获取上一条命令的执行成功与否
8、默认情况下,子shell是不能访问父shell的变量的,如果想让子shell访问父shell的环境变量,那么久需要 
   在父shell中export该变量
9、在shell中定义数组变量使用,shell中的下标从1开始
    v[1]="A"
    v[2]="B"
    v[3]="C"
10、如果需要限制用户的使用资源可以使用ulimit命令(用到的时候在查)
11、变量内容的删除/替换/
   v=/root/lyzx/bin:/root/lyzx/sbin:/home/prod/bin:/home/prod/sbin
   echo ${v}
   echo ${v#/*bin:}   =>  /root/lyzx/sbin:/home/prod/bin:/home/prod/sbin
   echo ${v##/*bin:}   => /home/prod/sbin
   解释:
      #表示从其前面的变量值得最左边开始往后删除,删除最短的距离
      ##表示从其前面的变量值得最左边开始往后删除,删除最长的距离   

   v=/root/lyzx/bin:/root/lyzx/sbin:/home/prod/bin:/home/prod/sbin
   echo ${v}
   echo ${v%:/*bin:}  => /root/lyzx/bin:/root/lyzx/sbin
   echo ${v%%:/*sbin:} => /root/lyzx/bin
    解释:
        %表示从其最后面往前删除,删除最短的距离
        %%表示从其后面往前删除,删除最长的距离
   
   v=/root/lyzx/bin:/root/lyzx/sbin:/home/prod/bin:/home/prod/sbin
   ${v}
   ${v/sbin/SBIN}  => /root/lyzx/bin:/root/lyzx/SBIN:/home/prod/bin:/home/prod/sbin
   ${v/sbin//SBIN}  => /root/lyzx/bin:/root/lyzx/SBIN:/home/prod/bin:/home/prod/SBIN
 
  解释:
   / 表示把其后的替换为最后的文本,只替换第一个
   //表示把其后的替换为最后的文本,替换所有
   
   echo ${v-v1}   //当v变量没有定义时,返回v1
   echo ${v:-v1}  //当v变量没有定义、或者为空字符串时,返回v1

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值