在 sh 中:
~$ `echo ls`
bin/ Desktop/
但在鱼中:
fish: Illegal command name “(echo ls)”
~% (echo ls)
(请注意,错误消息出现在命令行上方。)
~% echo (echo ls)
ls
~% eval (echo ls)
bin/ Desktop/
fish: Illegal command name “(echo ls)”
exec (echo ls)
^
~% exec (echo ls)
似乎命令替换只能作为命令的参数,而不是命令本身?为什么?
嗯,帮助文档确实说
如果参数包含一组括号,则括号内的文本将被解释为命令列表。
但是,为什么?