有趣的是,如果您打算使用Bash使用ash显示0_1

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

那么它只会显示
1

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

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

最佳答案

由于允许变量名中带有下划线,因此命令:

echo "$x_$y"
正在尝试回显${x_}(在您的情况下可能为空),然后回显${y}。这样做的原因是因为参数扩展是一个贪婪的操作-在$之后形成一个变量名将占用尽可能多的合法字符。bash联机帮助页的相关部分指出:

因此,解决方案是确保_不被视为第一个变量的一部分,这可以通过以下方式完成:
echo "${x}_${y}"
我倾向于像这样做所有的bash变量,甚至是独立的变量:
echo "${x}"
因为它更明确,而且我在过去被咬过很多次:-)

10-07 19:12
查看更多