はじめに
シェルスクリプトは、LinuxやmacOSなどのUnix系OSでタスクを自動化するための強力なツールです。ファイル操作やシステム管理、ソフトウェアインストールなど、さまざまな処理を簡単に実行できます。この記事では、シェルスクリプトの基本的な文法と主要なコマンドを、実際に動作確認をしながら学んでいきます。
シェルスクリプトとは?
シェルスクリプトは、シェル(コマンドラインインターフェース)を使って複数のコマンドを自動化するためのスクリプトです。シェルは、Unix系のオペレーティングシステムにおいて、ユーザーとOSの間でコマンドの入力と出力を処理するプログラムです。シェルスクリプトは、タスクを自動化するためにシェルに書かれる一連のコマンドです。
このチュートリアルでは、シェルスクリプトを使った基本的な操作を実際に試しながら学びます。
シェルスクリプトの基本文法
1. シェルスクリプトの作成と実行
シェルスクリプトは、.sh
という拡張子を持つファイルとして作成します。以下の手順で、シェルスクリプトを作成して実行してみましょう。
1. テキストエディタを開いて、以下の内容をmyscript.sh
という名前で保存します。
#!/bin/bash
echo "Hello, World!"
- 最初の行
#!/bin/bash
は**シバン(Shebang)**と呼ばれ、スクリプトがどのシェルで実行されるべきかを指定します。ここではBashシェルを使用する事を指定しています。 - 次の行は、シェルに「Hello, World!」と出力させるコマンドです。
2. 保存したスクリプトファイルを実行可能にするために、以下のコマンドを実行します。
chmod +x myscript.sh
3. スクリプトを実行します。
./myscript.sh
このスクリプトを実行すると、ターミナルにHello, World!
と表示されるはずです。
2. 変数の使い方
シェルスクリプトでは、変数を使ってデータを格納したり、計算を行ったりできます。変数の代入や使用方法を確認しましょう。
例1: 変数の代入と使用
#!/bin/bash
name="Alice"
echo "Hello, $name!"
- 変数は
変数名=value
という形式で代入します。 - 変数の値を参照するには
$
を使います。例えば、$name
で変数name
の値を取り出します。
このスクリプトを実行すると、次のように表示されます。
Hello, Alice!
例2: 数値の演算
#!/bin/bash
a=10
b=5
sum=$((a + b))
echo "Sum: $sum"
- 数値の演算は
$((式))
の形式で行います。この例では、変数a
とb
の足し算を行い、その結果を変数sum
に格納しています。
このスクリプトを実行すると、次のように表示されます。
Sum: 15
3. 条件分岐(if文)
シェルスクリプトでは、if
文を使って条件に基づく処理を行うことができます。条件式は、通常[ 条件式 ]
という形式で書きます。
例: if文の使い方
#!/bin/bash
age=20
if [ $age -ge 18 ]; then
echo "You are an adult."
else
echo "You are a minor."
fi
-
-ge
は「greater than or equal to」の意味で、$age
が18以上かどうかを判断しています。
このスクリプトを実行すると、次のように表示されます。
You are an adult.
条件式演算子の例
-
-eq
: 等しい -
-ne
: 等しくない -
-gt
: より大きい -
-ge
: 以上 -
-lt
: より小さい -
-le
: 以下
4. ループ処理(for文、while文)
シェルスクリプトでは、for
文やwhile
文を使って繰り返し処理を行えます。
例1: for文
#!/bin/bash
for i in {1..5}
do
echo "Number: $i"
done
-
{1..5}
は1から5までの数字を順番に取り出して、$i
に格納します。
このスクリプトを実行すると、次のように表示されます。
Number: 1
Number: 2
Number: 3
Number: 4
Number: 5
例2: while文
#!/bin/bash
count=1
while [ $count -le 5 ]
do
echo "Number: $count"
((count++))
done
-
while
文では、条件が真である限り繰り返し処理を行います。ここでは、$count
が5以下の間、count
を1ずつ増やして繰り返し表示します。
このスクリプトを実行すると、次のように表示されます。
Number: 1
Number: 2
Number: 3
Number: 4
Number: 5
5. 関数の定義と使用
シェルスクリプトでは、関数を定義して処理を分割することができます。関数はfunction
キーワードを使って定義します。function
キーワードは省略することもできます。
例: 関数の定義と呼び出し
#!/bin/bash
func1() {
echo "Hello, $1!"
}
function func2() {
echo "Hi, $1!"
}
func1 "Alice"
func2 "Bob"
- 引数
$1
(関数に渡された最初の引数)を使ってメッセージを表示する関数です
このスクリプトを実行すると、次のように表示されます。
Hello, Alice!
Hi, Bob!
おわりに
シェルスクリプトは非常に強力なツールであり、システム管理やタスクの自動化、複雑な操作を簡潔に記述することができます。この記事では、シェルスクリプトの基本的な文法と主要なコマンドを紹介しました。
- 変数の使用
- 条件分岐(if文)
- ループ処理(for文、while文)
- 関数の定義と使用
これらの基本的な文法を使いこなせるようになることで、シェルスクリプトを活用した自動化やシステム管理がより効率的に行えるようになります。ぜひ、実際に手を動かして試してみてください。