首页 > 运维 > linux运维 > linux-shell-命令替换和变量替换

linux-shell-命令替换和变量替换

步履不停
发布: 2019-06-18 16:56:51
原创
4356 人浏览过

linux-shell-命令替换和变量替换

命令替换$() ``

Shell 命令替换是指将命令的输出结果赋值给某个变量
登录后复制

Shell 中有两种方式可以完成命令替换,一种是反引号 ,一种是$(),使用方法如下:

variable=`commands`
variable=$(commands)
登录后复制

其中,variable 是变量名,commands 是要执行的命令。commands 可以只有一个命令,也可以有多个命令,多个命令之间以分号;分隔。

a=`expr 1 + 1`
echo $a
登录后复制

$( )与``区别

在操作上,这两者都是达到相应的效果,但是建议使用$( ),理由如下:

1.``很容易''搞混乱,尤其对初学者来说。
2.在多层次的复合替换中,``必须要额外的转义字符处理(反斜线),而$( )比较直观。
3.$( )的弊端是,并不是所有的类unix系统都支持这种方式,但反引号是肯定支持的。
登录后复制

变量替换 ${}

变量替换
变量替换可以根据变量的状态(是否为空、是否定义等)来改变它的值

可以使用的变量替换形式:

形式    说明
${var}    变量本来的值
${var:-word}    如果变量 var 为空或已被删除(unset),那么返回 word,但不改变 var 的值。
${var:=word}    如果变量 var 为空或已被删除(unset),那么返回 word,并将 var 的值设置为 word。
${var:?message}    如果变量 var 为空或已被删除(unset),那么将消息 message 送到标准错误输出,可以用来检测变量 var 是否可以被正常赋值。
若此替换出现在Shell脚本中,那么脚本将停止运行。
${var:+word}    如果变量 var 被定义,那么返回 word,但不改变 var 的值。
登录后复制

更多Linux相关技术文章,请访问Linux教程栏目进行学习!

以上是linux-shell-命令替换和变量替换的详细内容。更多信息请关注PHP中文网其他相关文章!

相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板