readonly [name]...
**readonly [name [= value]]...
**readonly -p
指定された各 name に「読み取り専用」のマークを付け、これらの名前が後続の割り当てでは変更できないようにします。 引数を省略すると、読み取り専用と指定された名前がすべて一覧表示されます。
name に「読み取り専用」のマークを付け、これらの名前が後続の割り当てでは変更できないようにします。
-p を指定したとき、readonly は、すべての読み取り専用変数の名前と値を、以下の形式で標準出力に書き出します。
"readonly %s=%s\n", name, value |
上記は、name を設定する場合です。
"readonly $s\n", name |
上記は、name を設定しない場合です。
コマンドとしてシェルに再入力できる形式で書き出されるため、同じ読み取り専用の属性と値をシェル実行環境で再現するときに便利です。保存しておいた出力をシェルに再入力するときには、以下のような制限があります。
出力時に値が設定されていた変数には、読み取り専用の属性は設定されません。
出力時に設定されていなかった変数には、値は設定されません。
1 つまたは 2 つの ** (アスタリスク) が先頭に付加されている ksh(1) コマンドは、以下のような特殊な処理を受けます。
コマンドが完了しても、コマンドの直前の 変数代入リストは依然として有効です。
入出力のリダイレクトは変数代入後に行われます。
エラーが発生すると、それを含むスクリプトは中止されます。
変数代入形式で、** から始まるコマンドに続くワードは、変数代入と同一の規則で展開されます。つまり、チルド置換は = 符号の後に実行され、ワード分割とファイル名生成は実行されません。
次の属性については attributes(5) のマニュアルページを参照してください。
属性タイプ |
属性値 |
使用条件 |
SUNWcsu |