Lから始まるLinux

3章16話
オプション処理
3章17話 readonlyコマンド
もくじ
3章18話
exportコマンド
readonly コマンド
若木 みどり
お兄ちゃん! 変数の値ってどこでも 書き換えられる可能性があるよね? これを書き換えられないようにできないかな?
若木 しげる
もちろんできるよ! 今回は 「読み取り専用変数 (readonly variable)」 について学ぼう!
使い方
若木 しげる
readonly 読み取り専用変数を 宣言するよ
readonly [オプション]... [変数名[=値]]...
若木 みどり
へぇ…思っていたより簡単にできるんだね!
実践
若木 みどり
ねぇ!さっそく試してみようよ!
若木 しげる
では NAME 変数を読み取り専用で宣言してみよう以下のようにしてみてね
readonly NAME=みどり
若木 みどり
うん!実行したよ!
若木 しげる
読み取り専用変数は値を読むことはできるよその確認をしてみよう
echo "$NAME"
若木 みどり
普通の変数と使い方は同じだね
みどり
若木 しげる
普通の変数との違いは変更ができないことなんだ以下のように値を変更してみようか
NAME=しげる
若木 みどり
やってみるね!
-bash: NAME: readonly variable
若木 みどり(驚き)
おおっ!NAME は読み込み専用だぞ!」と怒られたよ
若木 しげる
また変数の削除もできなくなるんだ
若木 しげる
unset定義済みの変数を未定義に戻すよ
若木 しげる
以下を実行してみよう
unset NAME
若木 みどり
こちらもやってみる!
-bash: unset: NAME: cannot unset: readonly variable
若木 みどり
こちらも怒られたよ削除もできないんだね
若木 しげる
不用意に読み込み専用変数を作ると後で消せずに困ることになるよ必要なものだけ読み込み専用変数にしてあげよう!
確認
若木 しげる
readonly引数なしで実行すると宣言された読み取り専用変数を一覧表示してくれるよ
readonly
若木 みどり
これで読み取り専用変数の確認ができるんだね!
まとめ
若木 みどり
今回は読み取り専用変数を学んだよ!readonly で実現できるんだ!
若木 しげる
シェル上よりもシェルスクリプト内で使われることが多い記述だよシェルスクリプト内で読み取り専用変数を宣言してもシェルスクリプトが終了すると一緒に無くなるんだシェルスクリプト内で書き換えて欲しくない値は読み取り専用変数にしてしまおう!