Open2
シェルスクリプト めも
比較演算子について
条件分岐を行う際の比較演算子の選択は、比較する値が数値か文字列かによって異なります。
文字列の比較
- 文字列が同じであるかの比較
if [ $x = 100 ]; then
これは文字列比較です。変数xの値が文字列"100"と等しい場合に真となります。数値の比較ではないため、変数xが数値であっても文字列として扱われます。
- 文字列が異なるかの比較
if [ "$x" != "100" ]; then
文字列比較です。変数xの値が文字列"100"と等しくない場合に真となります。変数が展開される場合を考慮して、変数はダブルクォーテーションで囲むことが推奨されます。
数値の比較
数値の比較では=ではなく、-eqなどの演算子を使用する
例 $xが100と等しいか
if [ $x -eq 100 ]; then
数値比較には、以下の演算子を使用します:
-eq: 等しい
-ne: 等しくない
-gt: より大きい
-ge: 以上
-lt: より小さい
-le: 以下
例えば、変数xが100以上であるかどうかを確認するには以下のように書きます
if [ $x -ge 100 ]; then
echo "$x は100以上です"
fi
変数
定義の仕方
シェルスクリプトの変数の定義の仕方
変数を使用する際には、=記号を使って変数に値を代入します
変数名の前には$を置くことで変数の値にアクセスできます
# 変数の定義
name="abcd"
# 変数の使用
echo $name
スコープ
変数のスコープについて
シェルスクリプトの変数には基本的に2つのスコープがある
- ローカルスコープ
- グローバルスコープ。
グローバルスコープ
スクリプトのどこからでもアクセスできる変数。
ローカルスコープ
関数内で定義された変数は、その関数内でのみアクセス可能です。
関数外部からはアクセスできません。
関数内で変数をローカルとして宣言するには、localキーワードを使用します。
# グローバル変数の定義
global_var="これはグローバルスコープです"
my_function() {
# ローカル変数の定義
local local_var="これはローカル変数"
echo $local_var
}
echo $global_var # これは表示されます
echo $local_var # これは表示されない