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

Lan*_*nes 2 echo text-processing table

所以我不想要这个:

echo "9"
9
Run Code Online (Sandbox Code Playgroud)

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

MAGICK "9"
    9
Run Code Online (Sandbox Code Playgroud)

所以如果我用 10 试试:

MAGICK "10"
   10
Run Code Online (Sandbox Code Playgroud)

那么它前面只有3个空格。如何以这种方式格式化我的输出?

Ign*_*ams 8

$ alias MAGICK="printf '%5s\n'"
$ MAGICK 10
   10
Run Code Online (Sandbox Code Playgroud)