我用 `...` 得到了预期的结果,但用 $(...) 失败了
kill $(ps ux | grep S..\.tcl | grep -v grep | awk '{print $2}')
Illegal variable name.
kill `ps ux | grep S..\.tcl | grep -v grep | awk '{print $2}'`
(kill expected processes)
Run Code Online (Sandbox Code Playgroud)
通过谷歌搜索,我发现有人说它们是可以互换的,但不是这个例子。那么,Bash 中的 $(...) 和 `...` 有什么区别?
我做了一个
grep -al 'Illegal variable name' /bin/*
Run Code Online (Sandbox Code Playgroud)
并在 /bin/csh 中找到该消息。当您发出命令时,您似乎正在运行csh而不是 bash。例如:
csh $ echo `echo abc`
abc
csh $ echo $(echo abc)
Illegal variable name.
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
6729 次 |
最近记录: |