关于Shell中命令替换$(...)与后置引用`...`的不同
2012-12-28 22:26
337 查看
概述:
对于命令替换来说, $(COMMAND)形式已经取代了后置引用`COMMAND`
(1) Bash中的后置引用 `COMMAND`会将命令中的\\转义为\再执行,而$(COMMAND)则不会进行转义
(2) $(...)形式的命令替换是允许嵌套的
详述:
echo `echo '\\'`
输出:
\
echo $(echo '\\')
输出
\\
假设:
VS100COMNTOOLS=C:\Program Files\Microsoft Visual Studio 10.0\Common7\Tools\
在终端输入:
echo `echo "${VS100COMNTOOLS}" | sed 's#^\(.\+\)\\.\+#\1#'`
输出
C:\Program Files\Microsoft Visual Studio 10.0\Common7\Tools\
而
echo $(echo "${VS100COMNTOOLS}" | sed 's#^\(.\+\)\\.\+#\1#')
输出
C:\Program Files\Microsoft Visual Studio 10.0\Common7
$(...)形式的命令替换达到了预期目的,而`...`却没有达到
原因是`...`将sed '...\\...'中的\\转义成了sed '...\....'
改成
echo `echo "${VS100COMNTOOLS}" | sed 's#^\(.\+\)\\\\.\+#\1#'`
或者使用$(...)即可
参考资料:高级Bash脚本编程指南-命令替换
--------------------------------------------------
author: cs_cjl
website: http://blog.csdn.net/cs_cjl
--------------------------------------------------
对于命令替换来说, $(COMMAND)形式已经取代了后置引用`COMMAND`
(1) Bash中的后置引用 `COMMAND`会将命令中的\\转义为\再执行,而$(COMMAND)则不会进行转义
(2) $(...)形式的命令替换是允许嵌套的
详述:
echo `echo '\\'`
输出:
\
echo $(echo '\\')
输出
\\
假设:
VS100COMNTOOLS=C:\Program Files\Microsoft Visual Studio 10.0\Common7\Tools\
在终端输入:
echo `echo "${VS100COMNTOOLS}" | sed 's#^\(.\+\)\\.\+#\1#'`
输出
C:\Program Files\Microsoft Visual Studio 10.0\Common7\Tools\
而
echo $(echo "${VS100COMNTOOLS}" | sed 's#^\(.\+\)\\.\+#\1#')
输出
C:\Program Files\Microsoft Visual Studio 10.0\Common7
$(...)形式的命令替换达到了预期目的,而`...`却没有达到
原因是`...`将sed '...\\...'中的\\转义成了sed '...\....'
改成
echo `echo "${VS100COMNTOOLS}" | sed 's#^\(.\+\)\\\\.\+#\1#'`
或者使用$(...)即可
参考资料:高级Bash脚本编程指南-命令替换
--------------------------------------------------
author: cs_cjl
website: http://blog.csdn.net/cs_cjl
--------------------------------------------------
相关文章推荐
- Shell中命令替换$(...)与后置引用`...`的区别与联系
- bash shell 命令替换及引用
- Shell学习:关于替换命令-tr-ROT13法则
- shell中命令的替换
- Shell 小技巧的问题 mysql -e ,字符串替换telnet命令检测
- 关于shell命令的定向输出 2>&1
- 关于vi替换命令的使用说明
- Linux--shell中的命令替换``与$()以及eval命令
- Shell中的命令别名、命令历史和命令替换的方法
- shell中的命令替换
- shell 文本替换命令
- 关于shell变量的测试与内容替换
- 【类unix系统shell基础】1.10命令替换与整数运算$(),$(())
- Shell替换:Shell变量替换,命令替换,转义字符
- Shell替换:Shell变量替换,命令替换,转义字符
- 关于不同像素设备替换不同图片的问题
- [Linux]:Bash shell字符串截取及命令替换
- shell 中的替换文本命令
- 七、Shell替换:Shell变量替换,命令替换,转义字符
- 关于shell sort命令的常用操作$