Как мне напечатать текст в bash и заполнить его пробелами до определенной ширины?

Я повторяю какой-то текст в сценарии bash с переменной в нем, и хочу дополнить эту переменную, чтобы в ней всегда было соответствующее количество пробелов справа, чтобы остальной текст оставался выровненным.

Вот пример того, что я хочу:

Echoing random number 1080    [ OK ]
Echoing random number 443     [ OK ]
Echoing random number 34842   [ OK ]

Числовое значение будет иметь разную длину (вероятно, не более 5 или 6 цифр).

Я знаю, что printf может это сделать и правильно выровнять переменную, выполнив следующее:

printf "Echoing random number %5s   [ OK ]" $RAND_NUM

Тем не менее, это отформатирует текст следующим образом:

Echoing random number  1080   [ OK ]
Echoing random number   443   [ OK ]
Echoing random number 34842   [ OK ]

И, конечно, просто эхо с пробелами не работает:

echo "Echoing random number ${RAND_NUM}   [ OK ]"

Производит следующее:

Echoing random number 1080   [ OK ]
Echoing random number 443   [ OK ]
Echoing random number 34842   [ OK ]

Есть ли способ распечатать текст, как мой Первый пример?

40
задан PHLAK 14 June 2011 в 14:48
поделиться