シェルスクリプトにおける変数定義
シェルスクリプトでは、変数を定義して値を格納し、それらの値を操作することができます。以下に、シェルスクリプトにおける変数定義の基本と応用について説明します。
1. 変数の基本
変数の定義と代入
変数を定義するには、変数名と等号 =
を使います。等号の前後にはスペースを入れません。
#!/bin/bash
# 変数の定義
変数名=値
# 例
name="John"
age=25
変数の使用
定義した変数を使用するには、変数名の前に $
を付けます。
#!/bin/bash
name="John"
age=25
echo "Name: $name"
echo "Age: $age"
2. 変数の種類
ローカル変数
通常の変数は、スクリプト内または現在のシェルセッション内でのみ有効です。
#!/bin/bash
greeting="Hello"
echo $greeting # "Hello" と表示される
環境変数
環境変数は、エクスポートすることで子プロセスにも引き継がれます。
#!/bin/bash
export PATH="/usr/local/bin:$PATH"
export name="John"
3. 変数の値の変更
変数の値は再代入することで変更できます。
#!/bin/bash
number=5
echo $number # 5 と表示される
number=10
echo $number # 10 と表示される
4. 変数の削除
unset
コマンドを使って変数を削除できます。
#!/bin/bash
name="John"
unset name
echo $name # 何も表示されない
5. 変数のスコープ
ローカルスコープ
関数内で定義された変数は、その関数内でのみ有効です。
#!/bin/bash
function greet {
local greeting="Hello"
echo $greeting
}
greet # "Hello" と表示される
echo $greeting # 何も表示されない
グローバルスコープ
関数外で定義された変数は、スクリプト全体で有効です。
#!/bin/bash
greeting="Hello"
function greet {
echo $greeting
}
greet # "Hello" と表示される
6. 変数の値の操作
文字列の結合
文字列を結合するには、変数を直接連結します。
#!/bin/bash
first="Hello"
second="World"
greeting="$first, $second!"
echo $greeting # "Hello, World!" と表示される
算術演算
整数の算術演算には、$(( ... ))
を使用します。
#!/bin/bash
num1=5
num2=3
sum=$((num1 + num2))
echo $sum # 8 と表示される
product=$((num1 * num2))
echo $product # 15 と表示される
7. 特殊変数
位置パラメータ
スクリプトに渡された引数を表します。
#!/bin/bash
echo "Script name: $0"
echo "First argument: $1"
echo "Second argument: $2"
システム変数
シェルやシステムの情報を提供します。
#!/bin/bash
echo "Bash version: $BASH_VERSION"
echo "Home directory: $HOME"
echo "Current directory: $PWD"
まとめ
シェルスクリプトにおける変数の定義と操作は、スクリプトの柔軟性と機能性を高めるために重要です。変数を適切に使用することで、スクリプトの再利用性が向上し、より複雑なタスクを効率的に処理することができます。