我在 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
https://stackoverflow.com/questions/6345429/
相关文章:
perl - Perl 中的今天日期,格式为 MM/DD/YYYY
visual-studio-code - 如何格式化 Visual Studio Code 项目中的
visual-studio - Razor Helper 语法自动格式化丑陋。怎么修?
ruby-on-rails - Rails(或 Ruby): Yes/No instead of T
eclipse - 如何在 Eclipse 中禁用保存时自动格式化?
reporting-services - Reporting Services [SSRS] 表达式