gpt4 book ai didi

string - 如何在 Bash 脚本中回显 "$x_$y"?

转载 作者:IT王子 更新时间:2023-10-29 00:25:54 24 4
gpt4 key购买 nike

非常有趣的是,如果您打算使用代码在 Bash 中显示 0_1

x=0
y=1
echo "$x_$y"

那么就只会显示

1

我试过 echo "$x\_$y" 但它不起作用。

如何回显 $x_$y 形式?我将在文件名字符串上使用它。

最佳答案

因为变量名允许有下划线,命令:

echo "$x_$y"

正在尝试回显 ${x_}(在您的情况下可能为空),然后是 ${y}。这样做的原因是因为参数扩展是一个贪婪的操作——它会在$之后尽可能多地使用合法的字符来组成一个变量名。

bash 联机帮助页的相关部分指出:

The $ character introduces parameter expansion, command substitution, or arithmetic expansion.

The parameter name or symbol to be expanded may be enclosed in braces, which are optional but serve to protect the variable to be expanded from characters immediately following it which could be interpreted as part of the name.

When braces are used, the matching ending brace is the first } not escaped by a backslash or within a quoted string, and not within an embedded arithmetic expansion, command substitution, or parameter expansion.

因此,解决方案是确保 _ 被视为第一个变量的一部分,这可以通过以下方式完成:

echo "${x}_${y}"

我倾向于像这样处理所有我的 bash 变量,甚至像这样的独立变量:

echo "${x}"

因为它更明确,而且我过去被咬了很多次:-)

关于string - 如何在 Bash 脚本中回显 "$x_$y"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14390955/

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