相关疑难解决方法(0)

无法理解Fish shell中的命令替换

在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)

看来命令替换只能作为命令的参数,而不是命令本身?为什么?

好吧,帮助文档确实说

如果参数包含一组括号,则括号括起的文本将被解释为命令列表.

但是,为什么呢?

bash shell command-line fish

6
推荐指数
1
解决办法
4498
查看次数

标签 统计

bash ×1

command-line ×1

fish ×1

shell ×1