eval && 倒引号 && $()

倒引号

倒引号的表示“,也叫反引号。
倒引号括起来的字符串被shell解释为命令行,在执行时,shell会先执行该命令,并以它的标准输出结果取代整个倒引号部分。
如:
这里写图片描述
shell在执行此条命令时,先执行倒引号中的命令date,将输出结果取代$today。
利用倒引号的这种功能可以进行命令置换,即把倒引号括起来的命令的执行结果赋给指定变量。

进行命令置换时,可以是单条命令,也可以是多条命令的组合
如:
这里写图片描述
另外,倒引号还可以嵌套使用,但应注意,要加”\”进行转义。
如:转义后:
这里写图片描述
不转义:
这里写图片描述


$()

()shellshell  ()部分。
这里写图片描述
可以看出使用倒引号和$()结果一样,但是为什么还要两个都使用?
那是因为因为它们还有区别的:
先看两个例子:
第一个:
这里写图片描述这里写图片描述
第二个:
这里写图片描述
这里写图片描述
由这两个例子可以看出倒引号和$()的区别。

**倒引号对 \ 进行了转义 ,要向使用 \ 就需要加 \ 。
而$()未进行转义,就是普通的 \ 。**


eval

eval是条命令,重新运算求出参数的内容。(主要用来两次扫描参数)
格式为:eval [arg …]
它利用别的命令行作为自己的参数,进行相应的变量或命令替换,并把替换结果结合成一个新的命令行,然后读取并加以执行。

(1)eval命令将会首先扫描命令行进行所有的替换,然后再执行命令。该命令使用于那些一次扫描无法实现其功能的变量。该命令对变量进行两次扫描。这些需要进行两次扫描的变量有时候被称为复杂变量。

(2)eval可以用于回显简单变量
这里写图片描述
这里写图片描述

(3)两次扫描
这里写图片描述
这里写图片描述
第一次扫描将$redirect替换为>,第二次执行ls > file,因此完成重定向。

(4)获得最后一个参数
这里写图片描述
这里写图片描述

参考博客:
http://blog.csdn.net/chenxucx/article/details/73771687
http://blog.csdn.net/xy913741894/article/details/73741758

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值