shell 中的 ` 和 $()
sh(1)
脚本中,`
和 $()
的作用类似。比如:
rm `find /foo/bar -ctime +3d -type f`
📓 注意
FreeBSD系统中,此处实际可以用
find /foo/bar -ctime +3d -type f -delete
来代替。
表示将 find
的输出结果作为 rm
的命令行输入。
常写 sh(1)
脚本的人可能会用另一个写法:
rm $(find /foo/bar -ctime +3d -type f)
这个写法和第一种是等价的。不过,$()
的好处是可以嵌套。
📜 历史文件已不具备现实意义
zsh 真香。以下内容作者已不再同意。
个人比较倾向于使用 `
而不是 $()
,主要有三个原因:
()
和{}
在显示时差别很小,容易引起误会;- 复杂到需要嵌套的命令通常是不对的;
`
可以在sh
和[t]csh
中使用,而$()
只能在sh
中使用。