Bash スクリプトの複数の if 条件
このプログラミングチュートリアルでは、bash の条件付き構造、特に単一および複数の条件を持つ if
条件について説明します。
Bash プログラミングの概要
Bash は、UNIX および Linux オペレーティングシステムのシンプルなコマンドラインインタープリターです。このインタープリターを使用すると、コマンドラインを使用していくつかのコマンドを実行できます。これらのコマンドは、スクリプトと呼ばれるファイルに入力することでまとめて実行できます。
シェルスクリプトは、bash で個別に実行したり、スクリプトファイルに書き込んだりして、後でそのスクリプトファイルを bash で実行できる bash コマンドのコレクションに他なりません。どちらの場合も結果は同じままです。
Bash は開発者にとって重要なツールであり、通常、頻繁に実行する必要のある反復的なタスクを自動化するために使用されます。Bash プログラミングは習得が容易で、bash コマンドの基本的な知識のみが必要です。
Bash スクリプトを書く
Bash スクリプトは、拡張子が .script
のファイルに書き込まれます。Linux は拡張機能のないオペレーティングシステムですが、bash スクリプトにこの拡張機能を追加することは優れたプログラミング規約です。
次のコマンドの機能は、新しいファイルを作成することです。
vim myscript.sh
このコマンドを実行すると、myscript.sh
という名前のファイルが作成され、vim
エディターで開かれます。以下は、すべての bash スクリプトの最初の行です。
#!/bin/bash
この行は shebang
と呼ばれ、オペレーティングシステムに bash インタープリターの場所を通知するために作成されています。この行の後、bash スクリプトの実際のコードが開始されます。
Bash スクリプトの条件ステートメント
Bash スクリプトでは、次のような複数のタイプの条件ステートメントを使用できます。
if
ステートメントif .. then.. else
ステートメントif .. elif
ステートメント- ネストされた
if
ステートメント case
ステートメント
単一および複数の条件を使用した if
ステートメントについて説明します。if
ステートメントに移る前に、if
ステートメントで一般的に使用されるいくつかの条件演算子を見てみましょう。
演算子記号 | 説明 |
---|---|
-eq |
2つの数値が等しい場合は、true を返します。 |
-lt |
数値が別の数値よりも小さい場合は、true を返します。 |
-gt |
ある数値が別の数値より大きい場合は、true を返します。 |
== |
2つの文字列が等しい場合は、true を返します。 |
!= |
2つの文字列が等しくない場合は、true を返します。 |
! |
使用されている式を無効にします。 |
1つの条件で if
ステートメントを使用する
構文:
if [ condition-statement ];
then
Commands..
fi
if
条件を使用する bash スクリプトの例を見てみましょう。
脚本:
#!/bin/bash
echo "Enter your marks out of 100: "
read marks
if [ $marks -gt 100 ]; then
printf "You have entered incorrect marks: $marks\n "
fi
出力:
複数の条件で if
ステートメントを使用する
前の例では、単一の条件を使用しました。複数の条件を適用し、論理演算子 AND
または OR
演算子を使用してそれらを分離することもできます。
以下の例を見てみましょう。
脚本:
#!/bin/bash
echo "Enter your marks out of 100: "
read marks
if [[ $marks -gt 100 && $marks -lt 0 ]]; then
printf "You have entered incorrect marks: $marks\n "
fi
出力:
Husnain is a professional Software Engineer and a researcher who loves to learn, build, write, and teach. Having worked various jobs in the IT industry, he especially enjoys finding ways to express complex ideas in simple ways through his content. In his free time, Husnain unwinds by thinking about tech fiction to solve problems around him.
LinkedIn