我如何订购“echo”命令的输出

我如何订购“echo”命令的输出

我使用 shell 脚本创建了一个脚本,该脚本的输出是:

在此输入图像描述

但我希望输出是这样的:

在此输入图像描述

代码是:

if [ $CS == 0 ]; then
printf $BLUE
echo "$url$i            [Found]"
else
printf $RED
echo "$url$i            [Not Found]"
fi

答案1

您已经在语句的分支printf中使用它,它支持格式化输出。假设包含“找到”与“未找到”条件的真值,这样的事情怎么样:trueif$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

相关内容