このbashスクリプトで正しい結果とエラーが表示されるのはなぜですか?

このbashスクリプトで正しい結果とエラーが表示されるのはなぜですか?

私は初めてbashスクリプトと「if then」ステートメントに触れました。以下の簡単なスクリプトを実行すると、正しい結果が得られますが、それでもエラーが発生します。スクリプト名はtestscript.shです。エラーは次のとおりです。 "./testscript: line 5: [csh: コマンドが見つかりません]"

これが何を意味するのかを知っている人はいますか?

#! /bin/bash

MY_SHELL="csh"

If ["$MY_SHELL" = "bash"
then
    echo "You seem to like the bash shell."

else

    Then "You don't seem to like the bash shell."

fi

ベストアンサー1

一行ずつ見てみましょう。

#! /bin/bash

MY_SHELL="csh"

今まではそんなに良くなった。

If ["$MY_SHELL" = "bash"

今、この行にはエラーがたくさんあります。

  1. if代わりにIf- シェルは大文字と小文字を区別するので、fooFOOは異なります。
  2. [文字の後にスペースが必要です。
  3. ]テストが終わったら、スペースを追加する必要があります。

これは、行がより似ている必要があることを意味します。if [ "$MY_SHELL" = "bash" ]

then
    echo "You seem to like the bash shell."
else

これらは良いです

    Then "You don't seem to like the bash shell."

ここに一つ欲しいですecho。大文字と小文字を区別する必要があることを覚えておいてください。

fi

結果:

#! /bin/bash

MY_SHELL="csh"

if [ "$MY_SHELL" = "bash" ]
then
    echo "You seem to like the bash shell."
else
    echo "You don't seem to like the bash shell."
fi

編集:シェルスクリプトに慣れたらhttps://www.shellcheck.net/コンテンツの検証に役立つウェブサイトです。エラー出力は必ずしも明確ではありませんが、一般的にエラーを指摘するのに役立ちます。

おすすめ記事