Bashのビルトインコマンド”declare”の使い方紹介(変数の global スコープ/参照渡し)
またまた以下の内容の続きです。
まだまだ書き足りないけど今回で小休止を入れたいと思います。
- シェルスクリプトサンプルコードでよく見かける typeset や declare ってなに? | ゲンゾウ用ポストイット
- Bash のビルトインコマンド "declare" の使い方紹介(その1) | ゲンゾウ用ポストイット
- Bash のビルトインコマンド "declare" の使い方紹介(その2:大文字小文字の自動変換) | ゲンゾウ用ポストイット
- Bash のビルトインコマンド "declare" の使い方紹介(その3:読み取り専用) | ゲンゾウ用ポストイット
- Bash のビルトインコマンド "declare" の使い方紹介(変数の local スコープ) | ゲンゾウ用ポストイット
前回 関数内で declare
コマンドを使って定義した変数は、自動的に local スコープになるというところで終わりました。
では、関数内の local スコープ変数をもっと広いスコープにするにはどうしたらよいでしょう?
Contents
-g
オプション
declare
コマンドのオプションに -g
と言うものがあります。
デフォルトの local
スコープよりさらに広い global
スコープを設定してやることができます。
関数の内部で定義した変数を関数の外部でも利用できるようになります。
関数の外で参照できるだけでなく、他の関数からも参照できるようになります。
けれども、あんまり広いスコープの変数を使うことはないと思います。
ちなみに、 global 変数と local 変数は干渉し合わないのでしょうか?
同名の変数の干渉を避けることができます。
-n
オプション
呼び出し元に結果を返す方法として global 変数を使う方法があるが、ちょっと変わった方法もあります。
-n
オプションを使って変数の 参照渡し をする方法です。
ディスカッション
コメント一覧
まだ、コメントがありません