首页 > 代码库 > Shell下的命令代换与eval命令
Shell下的命令代换与eval命令
在shell中,如果想获得一个命令的返回值,如果为整数,可以直接用$?获取其退出码.
但如果一条命令的返回值不是整数,怎么实现?
不得不提shell下的命令代换功能!
两种方式实现命令代换
假设我们某个变量需要获得当前时间,则可以这样实现:
date=`date`
echo $date
或者也可以这样
date=$(date)
echo $date
这两种方式都可以实现命令代换的功能,那么他们有何不同?
两种命令代换方式的区别
1.$()看起来比较简洁,而``很容易与‘’进行混淆.
2.在多层替换中``需要进行转义,比较麻烦
3.``的移植性更强,因为$()不保证所有linux系统都能支持
eval命令
eval命令用来告知shell取出eval的参数,重新运算求出参数内容.
比如:
val=123
cmd="echo $val 456789"
echo $cmd #echo 123 456789
eval $cmd #123 456789
Shell下的命令代换与eval命令
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。