答案1
您已经在语句的分支printf
中使用它,它支持格式化输出。假设包含“找到”与“未找到”条件的真值,这样的事情怎么样:true
if
$CS
printf "$color%-50s%s$RESET\n" "$url" "$status"
其中$color
是所需颜色的 ANSI 代码,$RESET
是 ANSI 代码\e[0m
, 和$url
分别$status
是 URL 字符串和 [Found] 或 [Not Found] 状态字符串。
这是一个完整的例子。注意我在 shebang 中使用过sh
,但这也与 bash 语法完全兼容:
#!/bin/sh
BLUE="^[[0;34m"
RED="^[[0;31m"
RESET="^[[0m"
CS=0
for url in http://example.com/foo http://example.com/longer_address ; do
if [ $CS -eq 0 ]; then
color=$BLUE
status='[Found]'
else
color=$RED
status='[Not Found]'
fi
printf "$color%-50s%s$RESET\n" "$url" "$status"
CS=1 # Change truth condition for next test
done