shell中命令替换$(cmd)和符号`cmd`
2017-02-25 21:17
696 查看
【linux】shell中命令替换$(cmd)和符号`cmd`
作用:$(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:$path
done区别1, 反引号很容易与单引号搞混乱,对初学者来说。有时在一些奇怪的字形显示中,两种符号是一模一样的(直竖两点)。用$()可以更好的避免这种混乱
2, 在多层次的复合替换中,反引号须要额外的跳脱( /` )处理,而 $( ) 则比较直观。例如:
`com1`com2`` 你这么写就是错的。需要`com1/`com2/``如果有多个命令嵌套就比较复杂了。而用$()就比较直观比如$(com1$(com2$(com3))) 如果是多个命令的话可以用;隔开。比如$ { var1=test1;var2=test2;echo$var1>a;echo $var2;}
不过,$( ) 并不是没有毙端的...
反引号 基本上可用在全部的 unix shell 中使用,若写成 shell script ,其移植性比较高。
而 $() 并不见的每一种 shell 都能使用.
相关文章推荐
- 【linux】shell中命令替换$(cmd)和符号`cmd`
- 关于Shell中命令替换$(...)与后置引用`...`的不同
- shell特殊符号/cut,sort,wc,uniq,tee,tr,split命令
- Shell命令中的扩展和替换
- 【小提示】cmd命令打不开怎么回事,只是一闪而过,没被禁用。也试着替换过cmd.exe,还是不行
- Linux--Shell 编程-bash,命令替换,if分支嵌套,运算,输入输出
- 单引号内引入变量 shell 命令输出赋值给变量,以及用变量替换命令
- java执行命令(cmd,shell)
- Linux--Shell 编程-bash,命令替换,if分支嵌套,运算,输入输出
- Shell替换:Shell变量替换,命令替换,转义字符
- 【Shell脚本学习9】Shell替换:Shell变量替换,命令替换,转义字符
- Shell替换:Shell变量替换,命令替换,转义字符
- java 中调用window系统中的文件,或者执行命令(shell、.CMD、.EXE)并获取返回值(如果有的话)
- Shell入门教程:命令替换 $() 和 ``
- Linux下Shell脚本中几种基本命令的替换区别
- shell 替换文本中的某个符号为换行符
- Shell替换数组元素之间的间隔符号
- pwnable之cmd2 & & shell 命令 绕过技巧
- Shell中的命令别名、命令历史和命令替换的方法
- 11.17 shell特殊符号cut命令,sort_wc_uniq命令,tee_tr_split命令,shell特殊符号