シェルスクリプティング入門ガイド4条件とIf-Thenステートメント
シェルスクリプト作成のガイドでは、快適な実験をするために必要な基本事項について十分に説明しました。今週の記事では、条件や「if-then」ステートメントなど、もっとおもしろいものに取り組んでいきます。.
条件とは?
日常の言葉では、条件は何かが起こるために満たされなければならない要件であると言います。私のラップトップがインターネットに接続できるようにするには、ISP、モデムやルーターの電源が入っている、ラップトップの電源が入っているなど、いくつかの条件を満たす必要があります。これらの要件のうち、満たされていない、結果 - インターネットに接続している私のラップトップ - は起こりません.
コンピューティングの分野における条件も同様に機能します。ある文字列が別の文字列と一致するかどうか、別の文字列と一致しないかどうか、または存在していてもテストできます。同様に、数値引数をテストして、一方が他方よりも大きい、小さい、または等しいかどうかを確認できます。テストの条件が満たされた後に何かが起きるようにするために、“ if-then”ステートメントを使います。それらのフォーマットはとても単純です.
条件があれば
それから
command1
command2
…
指揮
fi
ステートメントの場合
簡単な小さなテストスクリプトを実行しましょう。?
テスト$ 1 -gt $ 2の場合
それから
エコー「$ 1は$ 2より大きい」
fi
その条件が当てはまる場合にのみ、スクリプトは次のコマンドを実行します。そうでなければ、“ if”文は終了します。 if文の後にコマンドがある場合は、通常どおりに実行されます。これを説明するために、上記のスクリプトの最後に次の行を追加しました。
echo「これはif文の後に来ます」
あなたが試してみたいかもしれない他のいくつかの数値演算子があります:
- -eq:等しい
- -ne:等しくない
- -lt:より小さい
- -le:以下
- -gt:より大きい
- -ge:以上
テスト文字列
それでは、スクリプトの最初の行を次のように変更するとします。
テスト$ 1 = $ 2の場合
それから条件は2つが等しいかどうかテストします。しかしここでキャッチがあります!等号(=)を使用すると、数字ではなく2つのストリングが比較されます。数値を比較したい場合は、上記の「-gt」の使用方法と同様に、「 - eq」演算子を使用する必要があります。.
それでは、別の変更を加えましょう。
テスト$ 1!= $ 2の場合
感嘆符(!)を含めると、「not」修飾子として機能します。つまり、2つの文字列が一致しない場合にのみ次のコマンドを実行します。.
これがあなたが使うことができるいくつかのより多くのストリングベースのテストのリストです:
- string:引数だけを使用して、文字列が空白(null)でないか、または何らかの方法で定義されていないかをテストします。
- -n string:文字列が空白でなく、定義されているかどうかをテストします
- -z string:文字列が空白でそのように定義されているかどうかをテストします
その他の場合?
私は認めるでしょう、そのセクションのタイトルは間違いなく悪いパニックでした。さて、テストが真の場合にコマンドを実行する方法はわかっていますが、偽の場合に別のコマンドを実行したいとしたらどうでしょうか。 「if-then」ステートメントにセクションを追加することで、2つを簡単にまとめることができます - 「else」!
条件があれば
それから
command1
command2
…
指揮
それ以外の
command1
command2
…
指揮
fi
簡単なスクリプトをまとめましょう.
適切な字下げがあるものすべてがあります。よく見ると、testコマンドの代わりに角括弧([と])を使ったことに気づくでしょう。これらは機能的には同等ですが、さまざまな理由で角括弧が表示される可能性が高いので、今後使用します。.
出力は次のようになります。
それはとても簡単です!
私は今何をしていますか?
「if-then-else」文の使用方法がわかったので、テストを実行できるスクリプトを実行できます。たとえば、ファイルのmd5ハッシュを計算し、それをファイルにダウンロードしたものと比較してそれらが一致するかどうかを確認するスクリプトを実行できます。.
いくつかのボーナスポイントのために、あなたは「for」ループを持っていますが、リストファイルから行を読む代わりにテスト条件を使うスクリプトを作成することができます…
私たちはシェルスクリプティングのための私達の初心者ガイドの中でもっとおもしろい部分のいくつかに近づいています。前のレッスンを見逃した場合は、ここにチェックアウトするための簡単なリストがあります。
- シェルスクリプティングの基本
- Forループの使用
- より基本的なコマンド
- Linuxシェルの違いは何ですか?
- 基本正規表現の使い方
テスト条件、if-then-else文、および「for」ループを利用するスクリプトを作成または使用したことがある場合は、コメント欄で共有してください。!