shell里面如何给一个变量补空格,并存入变量

printf "%4d\n" 1
结果:“ 1”

set test = `printf "%4d\n" 1`
echo "$test"
结果:“1”

空格为什么没有了

echo "$test"不会保留空格 echo $test不会保留空格。“”会保持变量的原态,部分不会保持原态(转义)而''会完全保持原态echo '$test'会输出$test。如果什么都不加变量会自动过滤一些特殊字符。变量的状态是不可知的。双引号作用是变量替换是不被阻止的。所以双引号称为部分引用。单引号作用会把变量替换完全被禁止。变量名只会被解释称字面意思。不会发生变令替换。所以被成为全部引用。

参考资料:http://book.51cto.com/art/201001/175451.htm

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-11-24
我的可以输出空格啊,
[root@xiao ~]# test=`printf "%4d\n" 1`
[root@xiao ~]# echo "$test"
1
你可以把test=”`printf "%4d\n" 1`“ 也加上双引号试试。本回答被提问者采纳
相似回答