Linux シェル スクリプトの変数とフロー制御
Linux シェル スクリプトは、さまざまな複雑なタスクの実行に役立つ便利な自動化ツールです。この記事では、シェル スクリプトの変数とフロー制御ステートメントと、それらを使用して効率的で読みやすいスクリプトを作成する方法について詳しく説明します。
変数
シェル スクリプトでは、変数はデータを保存および参照するためのコンテナです。変数名は文字、数字、アンダースコアで構成されますが、数字で始めることはできません。
変数を定義する
シェル スクリプトでは、等号 (=) を使用して変数を定義できます。変数名と等号の間にスペースを入れることはできません。
name="John Doe"
age=30
参照変数
変数を参照するには、変数名の前にドル記号 ($) を付けます。変数を引用符で囲む場合は、変数名を二重引用符 (") または一重引用符 (') で囲むことができます。二重引用符内の変数は展開されますが、一重引用符内の変数は展開されません。
echo "My name is $name and I am $age years old."
echo 'My name is $name and I am $age years old.'
出力:
My name is John Doe and I am 30 years old.
My name is $name and I am $age years old.
変数操作
- 文字列の連結:
string1="Hello, "
string2="world!"
combined_string="$string1$string2"
echo $combined_string
出力:
Hello, world!
- 文字列の長さ:
string="Hello, world!"
length=${
#string}
echo "The length of the string is $length."
出力:
The length of the string is 13.
- 文字列インターセプト:
string="Hello, world!"
substring=${string:7:5}
echo "The substring is '$substring'."
出力:
The substring is 'world'.
フロー制御ステートメント
フロー制御ステートメントは、スクリプトの実行順序を制御するために使用されます。一般的なフロー制御ステートメントには、if-then-else、case、for、while、until などが含まれます。
if-then-else ステートメント
if-then-else ステートメントは、条件に基づいてさまざまなコード ブロックを実行するために使用されます。
number=5
if [ $number -lt 10 ]; then
echo "The number is less than 10."
elif [ $number -eq 10 ]; then
echo "The number is equal to 10."
else
echo "The number is greater than 10."
fi
出力:
The number is less than 10.
テスト条件は角括弧 ([ ]) で囲み、角括弧の間にスペースを入れる必要があることに注意してください。
ケースステートメント
case ステートメントは、変数の値に応じて異なるコード ブロックを実行するために使用されます。
fruit="apple"
case $fruit in
"apple")
echo "It's an apple."
;;
"banana")
echo "It's a banana."
;;
*)
echo "It's something else."
;;
esac
出力:
It's an apple.
for ループ
for ループは、コードのブロックを繰り返し実行するために使用されます。
for i in {
1..5}; do
echo "Iteration $i"
done
出力:
Iteration 1
Iteration 2
Iteration 3
Iteration 4
Iteration 5
while ループ
while ループは、条件が満たされている間、コードのセクションを繰り返し実行します。
i=1
while [ $i -le 5 ]; do
echo "Iteration $i"
i=$((i + 1))
done
出力:
Iteration 1
Iteration 2
Iteration 3
Iteration 4
Iteration 5
ループまで
until ループは、条件が満たされない場合にコードのセクションを繰り返し実行します。
i=1
until [ $i -gt 5 ];do
echo "Iteration $i"
i=$((i + 1))
done
出力:
Iteration 1
Iteration 2
Iteration 3
Iteration 4
Iteration 5
要約する
この記事では、Linux シェル スクリプトの変数とフロー制御ステートメント、およびそれらを使用して効率的で読みやすいスクリプトを作成する方法について詳しく説明します。これらの基本概念をマスターすると、シェル スクリプトをより上手に使用してさまざまなタスクを実行できるようになります。もちろん、シェル スクリプトの機能はこれらをはるかに超えており、探索して学習するのを待っている高度な機能が数多くあります。