Linux: shell 中命令代换 $() 和 ``(有图有代码有真相!!!)
2017-06-15 16:18
567 查看
一、命令代换(命令替换)
由 ` ` 或 $() 括起来的也是一条命令,shell先执行该命令,再将结果立刻代换到当前命令行中。
简单例子:
DATE=`date`
echo $DATE
DATE=$(date)
echo $DATE
执行结果:
二、优缺点:
1、反引号的缺点
1).它比较陈旧。
2).非常容易和单引号混淆。
3).它会对\进行跳脱处理。而$()不会。
结果分析:我们知道,shell里的单引号会保持所有字符的字面值;
正确的的执行结果应该是: \ \
实际上用反引号输出的结果却是: \
这就是由于它对 \ 进行了跳脱处理。
总结:所以,一般情况下建议使用$(),这样比较直观,但是它也有它的缺点,并不是所有的类unix系统都支持这种方式,但反引号是肯定支持的。也就是说移植性不如反引号
2、$()
1)以$(command) 的形式可以互相嵌套多个命令扩展。
2)反引号基本上可用在全部的 unix shell 中使用,若写成 shell script ,其移植性比较高。
但是 $( ) 并不见的每一种 shell 都能使用
由 ` ` 或 $() 括起来的也是一条命令,shell先执行该命令,再将结果立刻代换到当前命令行中。
简单例子:
DATE=`date`
echo $DATE
DATE=$(date)
echo $DATE
执行结果:
二、优缺点:
1、反引号的缺点
1).它比较陈旧。
2).非常容易和单引号混淆。
3).它会对\进行跳脱处理。而$()不会。
结果分析:我们知道,shell里的单引号会保持所有字符的字面值;
正确的的执行结果应该是: \ \
实际上用反引号输出的结果却是: \
这就是由于它对 \ 进行了跳脱处理。
总结:所以,一般情况下建议使用$(),这样比较直观,但是它也有它的缺点,并不是所有的类unix系统都支持这种方式,但反引号是肯定支持的。也就是说移植性不如反引号
2、$()
1)以$(command) 的形式可以互相嵌套多个命令扩展。
2)反引号基本上可用在全部的 unix shell 中使用,若写成 shell script ,其移植性比较高。
但是 $( ) 并不见的每一种 shell 都能使用
相关文章推荐
- Linux: shell命令 eval (有图有代码有真相!!!)
- android代码执行adb shell终端命令(linux命令)并返回执行结果
- Linux【Shell脚本】—eval命令和命令代换(`和$())
- 【Linux】shell脚本下的命令代换` `和$() 以及eval
- LInux:shell 彩色进度条实现(有图有代码有真相!!!)
- Linux--shell中的命令替换``与$()以及eval命令
- Shell封装linux命令--代码同步
- 在linux下将自己的shell代码当做系统命令一样使用
- linux下shell命令date的妙用
- Sed 与 Linux 等价命令代码[zt]
- 代码中执行命令处理(面向Linux)
- Linux的shell功能和变量常用命令.八
- Linux主要shell命令详解
- Linux常用shell命令
- Linux系统Shell命令点滴
- Linux小白教程:vi(shell文本编辑器)保存、退出命令
- Linux中的shell命令参数详解
- Linux的shell命令的学习
- linux下查看各种命令的代码
- ubuntu linux shell下删除目录命令