相关疑难解决方法(0)

鱼壳命令替代

有没有更好的方法在鱼壳中进行命令替换?

在bash我可以这样做:

~> echo $(whoami) => user
~> echo "I am: $(whoami)" = > I am: user
Run Code Online (Sandbox Code Playgroud)

但在鱼类看起来像我必须做的:

~> echo (whoami) => user
~> echo "I am: (whoami)" => "I am: (whoami)"
~> set who (whoami); echo "I am: $who" => I am: user
Run Code Online (Sandbox Code Playgroud)

这是在fish中进行命令替换的推荐方法,其中替换需要在带引号的字符串中发生吗?

bash shell terminal fish

7
推荐指数
1
解决办法
1266
查看次数

无法理解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 ×2

fish ×2

shell ×2

command-line ×1

terminal ×1