完整的命令是% echo hello && $(echo "world")
,其中%
是 shell 提示符。
为什么会失败?
我注意到该错误与我直接在 bash 上运行命令替换相同
% $(echo "world")
答案1
它尝试运行命令“hello”,但失败了,因为您的系统上不存在该二进制文件。
echo 的参数应该用引号引起来,即:
echo "hello"
答案2
分组是错误的。
要在 bash 中对命令进行分组,请使用大括号,如下所示:
% echo hello && { echo "world"; }
有关语法的一些注释:
- 开始的大括号必须与 分开
echo
,否则它将被视为命令名称的一部分,称为{echo
。 - 括号内的命令序列必须以分号结尾
;
。
控制操作参见本页“3.分组语句”部分:http://mywiki.wooledge.org/BashGuide/TestsAndConditionals#Control_Operators_.28.26.26_and_.7C.7C.29