如何打印多个空格,然后在同一行上打印单词?



我需要打印行首带有一些空格的单词,并且我需要用变量设置空格计数。

此代码不起作用:

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!"