如何使可变长度输出右对齐?

如何使可变长度输出右对齐?

所以我不想要这个:

echo "9"
9

相反,我需要这个,例如:前面有 4 个空格:

MAGICK "9"
    9

所以如果我尝试使用 10:

MAGICK "10"
   10

那么它前面就只有 3 个空格。我怎样才能以这种方式格式化我的输出?

答案1

$ alias MAGICK="printf '%5s\n'"
$ MAGICK 10
   10

答案2

printf如果您希望格式化输出,则应该使用。

在上面的示例中,您可以使用1

printf "\t%s\n" "9"

其中\t是制表符,%s是您要打印的字符串,\n是换行符。

许多 shell 都有自己的版本printf- 有关详细信息,请检查您的文档。

[1] 注意:从你的问题中我并不完全清楚你想要完成什么......

答案3

适合管道输出:

alias rj='xargs printf "%$((${COLUMNS}-4))s\n"'

seq 0 $LINES | rj

相关内容