Linux下的eval以及和$(),``
来源:互联网 发布:淘宝店铺自己做活动 编辑:程序博客网 时间:2024/05/22 15:50
假设cmd=” echo 33”
eval $cmd 等价于 “echo 33 ”
其实相当是先让后边的变量先执行,再执行其结果;
同时这些需要进行两次扫描的变量有时候被称为复杂变量。
同时在shell脚本中还有等价的两条命令“ ,$() 都是做命令替换的,和上面变量替换差不多;都是用来重组命令行的,先完成引号里的命令行,然后将其结果替换出来,再重组成新的命令行。
$( )与``
在操作上,这两者都是达到相应的效果,但是建议使用\$( ),理由如下:
``很容易与”搞混乱,尤其对初学者来说。
在多层次的复合替换中,``必须要额外的跳脱处理(反斜线),而$( )比较直观。
例如:
将cmd1执行结果作为cmd2参数,再将cmd2结果作为cmd3的参数
cmd3 $(cmd2 $(cmd1))
如果是用反引号,直接引用是不行的,还需要作跳脱处理
cmd3 `cmd2 \`cmd1\` `
最后,$( )的弊端是,并不是所有的类unix系统都支持这种方式,但反引号是肯定支持的。
阅读全文
0 0
- Linux下的eval以及和$(),``
- 【Linux】shell脚本下的命令代换` `和$() 以及eval
- linux下set和eval的使用方法
- Linux下反引号``和$()的比较以及eval命令的调研
- Linux 下的 eval
- Linux"和$()的区别以及调研 eval命令
- linux下的eval指令
- Linux下的eval、` `与$()
- linux下的eval命令
- Linux下的eval命令
- Linux下的eval、`与$()
- 命令代换``和$()的学习以及eval命令的了解
- shell中反引号和$()的区别以及eval命令
- linux shell的eval
- shell 下shift和eval
- eval和window.eval的区别
- eval的用法,以及不用eval而用parseJSON()
- 关于倒引号` `和$()以及eval
- CSS兼容性详解
- 进程和线程的关系
- Android Service
- Introduction to R Matrices answer
- python:Process、join()、进程的创建Process子类、进程池Pool、将一个文件夹的内容copy到另一个文件夹
- Linux下的eval以及和$(),``
- 百练_2687:数组逆序重放
- Lintcode 空格替换
- hyperledger fabric交易流程
- 怎么让动态的 iframe 高度自适应里面内容
- 1.删除一个无头单链表的非尾节点 2.从尾到头打印单链表
- angular4.0 ERROR Error: Uncaught (in promise): Error: No provider for AuthGuard! Error: No provider
- 【Java入门】错误集锦 7.18
- C#调用C++动态链接库之Win32dll(函数)、MFCdll(对话框)