Bash 在这个命令替换中发生了什么?
我编写了以下命令替换并在bash shell中执行:Bash 在这个命令替换中发生了什么?,bash,expansion,command-substitution,Bash,Expansion,Command Substitution,我编写了以下命令替换并在bash shell中执行: $(echo echo 1; echo 2; echo 3) #output: 1 2 3 为什么在第一个表达式中需要双echo,而在第二个和第三个表达式中只需要单echos?这与您实际要求shell执行的操作有关。具体如下: “Echo-the-result of-Echo 1;Echo 2;Echo 3”这是我从Echo$(Echo 1;Echo 2;Echo 3)中期望得到的结果,但是当我阅读原始文本时,我看到了由分隔的每个表达式我认
$(echo echo 1; echo 2; echo 3) #output: 1 2 3
为什么在第一个表达式中需要双
echo
,而在第二个和第三个表达式中只需要单echo
s?这与您实际要求shell执行的操作有关。具体如下:
“Echo-the-result of-Echo 1;Echo 2;Echo 3”这是我从
Echo$(Echo 1;Echo 2;Echo 3)
中期望得到的结果,但是当我阅读原始文本时,我看到了由分隔的每个表达式代码>我认为这会终止第一次回音。相反,第一个回波通过代码>我不知道这是可能的…每个令牌从空间到
被视为子命令(在第一个命令之后)。亚壳很奇怪。我一直认为shell扩展的工作方式有点像perl中的-e开关,但我想它还有更多。。