gpt4 book ai didi

fish - fish shell 中意外缺乏变量扩展

转载 作者:行者123 更新时间:2023-12-01 00:37:43 25 4
gpt4 key购买 nike

这是2.1.0版本

$ set a foo
$ set b bar
$ echo $a_$b

$ echo {$a}_$b
foo_bar

为什么第一个“echo”没有输出任何东西?我本以为会看到“酒吧”

最佳答案

首先要意识到下划线在标识符中是有效的,所以被展开的变量不是$a而是$a_

现在 $a_ 未设置,这意味着它被视为零条目列表。不带引号的变量替换通过为列表中的每个元素单独扩展参数来工作,例如:

> set a 1 2 3
> echo {$a}_x
1_x 2_x 3_x

在原题中,$a_ 为空。该参数为列表中的每个元素单独扩展,这是空的,所以结果什么都没有。这就是它什么都不输出的原因。

双引号扩展的工作方式不同:列表条目由空格连接,然后扩展。

> set a 1 2 3
> echo "$a"_x
1 2 3_x

这可能更符合您的预期:

> set a foo
> set b bar
> echo "$a"_"$b"
foo_bar
> echo "$a_"$b
bar

关于fish - fish shell 中意外缺乏变量扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20136470/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com