変数を文字列bashと比較する

変数を文字列bashと比較する
st.txt

「失敗しました」「aa」「2018-04-03T17:43:38Z」

   while read status name date; do
    case "$status" in
    'aborted')
        echo -1
        ;;
    "failed")
        echo -1
        ;;
    'succeeded')
        echo 0
        ;;
    *)
        echo 0
    esac
    exit 0
done < st.txt

しかし、私はいつも出力としてゼロを取得します。

ベストアンサー1

"failed"次のように変更する必要があります"\"failed\""

while read status name date; do
    case "$status" in
        'aborted')
            echo -1
            ;;
        "\"failed\"")
            echo -1
            ;;
        'succeeded')
            echo 0
            ;;
        *) echo 0
    esac
    exit 0
done<st.txt

また、使用を検討することができますread with -r

欲しいものを達成するより簡単な方法もあります。

if [ "$(cut -d ' ' -f1 st.txt)" = "\"failed\"" ]
then
    printf -- "-1\n"
fi

おすすめ記事