在sh:
~$ `echo ls`
bin/ Desktop/
Run Code Online (Sandbox Code Playgroud)
但在鱼类:
fish: Illegal command name “(echo ls)”
~% (echo ls)
Run Code Online (Sandbox Code Playgroud)
(请注意,错误消息显示在命令行上方.)
~% echo (echo ls)
ls
~% eval (echo ls)
bin/ Desktop/
fish: Illegal command name “(echo ls)”
exec (echo ls)
^
~% exec (echo ls)
Run Code Online (Sandbox Code Playgroud)
看来命令替换只能作为命令的参数,而不是命令本身?为什么?
好吧,帮助文档确实说
如果参数包含一组括号,则括号括起的文本将被解释为命令列表.
但是,为什么呢?