「echo」コマンドの出力をどのように注文しますか?

「echo」コマンドの出力をどのように注文しますか?

シェルスクリプトを使用してスクリプトを作成し、スクリプトの出力は次のとおりです。

ここに画像の説明を入力してください。

しかし、私は出力が次のようになりたいと思います。

ここに画像の説明を入力してください。

コードは次のとおりです

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それぞれ$statusURL文字列と[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

おすすめ記事