有趣的是,如果您打算使用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}"
因为它更明确,而且我在过去被咬过很多次:-)