当我打字时ls -l $(echo file)
支架的输出(这只是简单的回显)被获取并传递到外部ls -l
命令。就等于简单的ls -l file
.
当我打字时ls -l (echo file)
我们有错误,因为不能嵌套()
内部外部命令。
有人可以帮助我理解之间的区别$()
and ()
?
$(cmd)
替换的结果cmd
作为字符串,而(cmd; cmd)
在子进程中运行命令列表。
如果要将一个或多个命令的输出放入变量中,请使用 $( cmd ) 形式。
但是,如果您想运行多个命令并将它们视为一个单元
使用 () 形式。
当您想在后台运行一组命令时,后者很有用:
(git pull; make clean; make all) &
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)