博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【linux】shell中命令替换$(cmd)和符号`cmd`
阅读量:6758 次
发布时间:2019-06-26

本文共 788 字,大约阅读时间需要 2 分钟。

来源:

 

作用

$(cmd)和`cmd`的作用是相同的,在执行一条命令时,会先将其中的 ``,或者是$() 中的语句当作命令执行一遍,再将结果加入到原命令中重新执行,例如:

echo `ls`
会先执行 ls 得到xx.sh等,再替换原命令为:
echo xx.sh
最后执行结果为
xx.sh

例子:

date=`date -d '1 day ago' "+%Y-%m-%d"`echo $date#结果:2017-01-09
date=$(date -d '1 day ago' "+%Y-%m-%d")echo $date#结果:2017-01-09

或者在shell脚本中像下面这样使用

for path in `find $HADOOP_HOME -name "*.jar"`do        export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:$pathdone

 

区别

1, 反引号很容易与单引号搞混乱,对初学者来说。有时在一些奇怪的字形显示中,两种符号是一模一样的(直竖两点)。用$()可以更好的避免这种混乱

2, 在多层次的复合替换中,反引号须要额外的跳脱( /` )处理,而 $( ) 则比较直观。例如:
`com1`com2`` 你这么写就是错的。需要`com1/`com2/``如果有多个命令嵌套就比较复杂了。而用$()就比较直观比如$(com1$(com2$(com3)))

 如果是多个命令的话可以用;隔开。比如$ { var1=test1;var2=test2;echo $var1>a;echo $var2;}

不过,$( ) 并不是没有毙端的...
反引号 基本上可用在全部的 unix shell 中使用,若写成 shell script ,其移植性比较高。
而 $() 并不见的每一种 shell 都能使用.

 

转载地址:http://xuweo.baihongyu.com/

你可能感兴趣的文章
linux文件系统
查看>>
HTTP协议头字段
查看>>
Linux文件系统之挂载/卸载
查看>>
textField限制输入整数0-100
查看>>
MySQL调优
查看>>
tableview 没有数据显示的时候,插入无数据的view
查看>>
数据结构与算法学习(一)
查看>>
ns3内核解析记录
查看>>
基于lnmp的Discuz论坛
查看>>
Xcode中的 编译过程以及编译器
查看>>
OSV配合windows 2008 r2 NPS 搭建802.1X认证环境
查看>>
01-Swift基础语法
查看>>
【MySQL】无法进入mysql connections问题
查看>>
再说TCP神奇的40ms
查看>>
eclipse hibernate配置文件(*.hbm.xml)加上自动提示功能
查看>>
extjs 枚举类型
查看>>
五、Hotspot中高效的垃圾回收算法实现
查看>>
发送邮件常见的错误和解决方法
查看>>
机器学习服务器 PredictionIO 脱颖而出
查看>>
mysql不能连接远程mysql服务器
查看>>