シェルスクリプトでは、変数を使ってデータを格納し、処理を行います。
変数にはローカル変数とグローバル変数があり、それぞれの使い方や違いを理解することが、スクリプトの効率的な作成に役立ちます。
この記事では、シェルスクリプトにおけるローカル変数とグローバル変数について詳しく解説します。
グローバル変数は、シェルスクリプト全体でアクセスできる変数です。関数の外で定義される変数はすべてグローバル変数です。グローバル変数は、スクリプト内のどこからでも参照できます。
ローカル変数は、特定の関数内でのみ有効な変数です。関数内でlocalキーワードを使って定義することで、その関数内だけでのスコープを持ち、関数外ではアクセスできません。
このスクリプトでは、g_varという変数がグローバル変数として定義され、関数内外で利用できます。
#!/bin/bash
# グローバル変数の定義
g_var="Hello!"
print_global_var() {
echo "$g_var"
}
print_global_var # 出力: Hello!
echo "$g_var" # 出力: Hello!
この例では、l_varがlocal_example関数内でローカル変数として定義されています。関数外ではアクセスできず、l_varの値は表示されません。
!/bin/bash
# ローカル変数を持つ関数
local_example() {
local l_var="Good morning!"
echo "$l_var"
}
local_example # 出力: Good morning!
echo "$l_var" # 出力: 何も表示されない
シェルスクリプトにおけるローカル変数とグローバル変数の使い分けは、スクリプトの効率性と可読性を高めるために重要です。
グローバル変数は全体で共有するデータに、ローカル変数は関数内の一時的なデータに使用します。
適切に使い分けることで、よりクリーンでバグの少ないスクリプトを作成することができます。