美文网首页
shell替换

shell替换

作者: come_on | 来源:发表于2018-08-28 10:56 被阅读31次

    如果表达式中包含特殊字符,shell将会进行替换。例如,前面学习过的变量的使用(在双引号中使用变量)就是一种替换,转义字符也是一种替换
    a=10
    echo -e "value of a is a \n" echo "value of a isa \n"
    发现在mac系统下加不加-e在双引号中都会对变量进行转义替换

    命令替换

    命令替换的语法是 Command 注意是反引号,不是单引号,这个键位于Esc键下方
    命令替换是指shell可以先执行命令,将输出结果暂时保存,在适当的地方输出。

    DATE=`date`
    echo "Date is $DATE"
    
    USERS=`who|wc -l`
    echo "logged in user are$USERS"
    
    UP=`date;uptime`
    echo "Uptime is $UP"
    
    形式 说明
    ${var} 变量本来的值
    ${var:+word} 如果变量var被定义,那么返回word,但不改变var的值
    ${var:-word} 如果变量var为空或者已被删除(unset),那么返回word,但不改变var的值
    ${var:=word} 如果变量var为空或者已被删除(unset),那么返回word,并将var的值设置为word
    ${var:?message} 如果变量 var 为空或已被删除(unset),那么将消息 message 送到标准错误输出,可以用来检测变量 var 是否可 以被正常赋值。若此替换出现在Shell脚本中,那么脚本将停止运行。
    echo ${var:-"variable is not set"}
    echo "1 - value of var is ${var}"
    
    echo ${var:="variable is not setting"}
    echo "2 - value of var is ${var}"
    
    unset var
    echo ${var:+"this is default value"}
    echo "3 - value of var is ${var}"
    
    var="prefix"
    echo ${var:+"this is a default value"}
    echo "4 - value of var is ${var}"
    
    echo ${var:?"print this message"}
    echo "5 - value of var is ${var}"
    

    上述代码,2、4、5都执行替换成功,1和3并未成功替换,不知为何,有知道的朋友还望不吝赐教,在此谢谢!

    相关文章

      网友评论

          本文标题:shell替换

          本文链接:https://www.haomeiwen.com/subject/drrfwftx.html