为了进行字符串匹配,我需要定义一个带前导空格的bash变量。 我需要从整数开始定义,例如:
jj=5
printf在我看来是个好主意,所以如果我想填充最多6个字符的空格:
jpat=`printf " %6i" $jj`
但是当我试图回忆变量时不幸的是:
echo $jpat
删除了前导空格,我只获得了$jj
整数。
保留这些空间的任何解决方案?
(这相当于:v=' val'; echo $v$v
。为什么输出中没有前导和多个空格?)
答案 0 :(得分:5)
Use More Quotes! echo "$jpat"
会做你想做的事。
您正在做的事情还有另一个问题:命令替换将删除尾随换行符。在您使用的printf
命令中,这不是问题,但是例如分配jpat=$(printf " %6i\n" "$jj")
会给您与命令完全相同的结果。