当我尝试回显或打印字符串时,它打印得很好。
这是字符串。
IP_NET_TP0 _
结构是IP_NET_TP0和9个制表符(\ t),然后是7个空格和1个下划线。
好吧,如果你把它放到一个变量中,让我们说var1,然后按照下面的方式打印它,效果很好。
echo $var1
echo "$var1"
但是,如果您向其添加额外的文本,例如添加引号或添加字母,则会从链中删除1个空格。
echo \"$var1\"
echo "'"$var1"'"
echo "a" $var1
WHY? ..我已尝试使用print打印变量,或者像$ {var1}一样打印变量,如果输出相同,则输出少1个空格。
以下显示,第一个用其他东西打印时,第二个单独打印时。
IP_NET_TP0 _
IP_NET_TP0 _
任何帮助都会很棒。
答案 0 :(得分:2)
也许您正在错误地实例化变量。当我宣布它像var1="IP_NET_TP0"
或var1=IP_NET_TP0
那样打印时,你做的工作正常。你使用bash还是不同类型的shell?你的.bash_profile或.bashrc中可能还有一些奇怪的东西导致这种情况。
答案 1 :(得分:1)
添加额外的patterne时,你没有正确地写回声
echo \"$var1\" -> echo "\"$var1\""
echo "'"$var1"'" -> echo "'$var1'"
echo "a" $var1 -> echo "a $var1" #if space is needed between a and the var1
还尝试使用$ {var1}以避免在此类情况下出现混淆
var="1 x 1 = "
var1="Something"
echo "$var1"
echo "${var}1"
echo "${var1}"
答案 2 :(得分:1)
问题已修复,因为字符串是将空格转换为制表符而构建的,有不同大小的制表符! ...在打印时可能导致解释问题,我在打印变量之前将所有选项卡转换为空格,因此大小不会再像这样更改var2=
echo $ var1 |展开......并完成,尺寸现已修复,不再发生变化。