我需要打印行首带有一些空格的单词,并且我需要用变量设置空格计数。
此代码不起作用:
spaces=20
echo "spaces: $spaces"
for ((n=0;n<$spaces;n++))
do
printf '%s' ''
done
printf '%s' 'hello!'
实际输出:
spaces: 20
hello!
预期产出:
spaces: 20
hello!
您可以使用单个printf
来获取所需数量的空格填充:
printf '%*sn' "$spaces" 'hello!'
hello!
更改以下内容:
printf '%s' ''
对此:
printf '%s' ' '
甚至这个:
printf ' '
或者只是将整个程序替换为:
s=20; printf %$s'sn' "hello!"