如何在bash中打印很多空格然后在同一行打印单词?
How to print many spaces and then print word on the same line in bash?
我需要在行首打印带有一些空格的单词,我需要用变量设置空格数。
此代码无效:
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 '%s' ''
为此:
printf '%s' ' '
甚至这样:
printf ' '
或者只是将整个程序替换为:
s=20; printf %$s's\n' "hello!"
您可以只使用单个 printf
来获得所需的空格填充数:
printf '%*s\n' "$spaces" 'hello!'
hello!
我需要在行首打印带有一些空格的单词,我需要用变量设置空格数。
此代码无效:
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 '%s' ''
为此:
printf '%s' ' '
甚至这样:
printf ' '
或者只是将整个程序替换为:
s=20; printf %$s's\n' "hello!"
您可以只使用单个 printf
来获得所需的空格填充数:
printf '%*s\n' "$spaces" 'hello!'
hello!