我在 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 ]
有没有办法像我的第一个例子一样打印文本?
最佳答案
使用 -
左对齐字段。
printf "Echoing random number %-5s [ OK ]" $RAND_NUM
或者,如果您使用的是 Red Hat Linux 系统,则有预定义的函数会打印出绿色 OK 和红色 FAILED 提示(您在启动期间看到的提示):
#!/bin/bash
. /etc/init.d/functions
echo -n "Frobbing widget:"
frob_widget && echo_success || echo_failure
echo
关于bash - 如何在 bash 中打印一些文本并用空格填充到一定宽度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6345429/