名前 | 形式 | 機能説明 | 使用例 | 属性 | 関連項目
set [--aefhkntuvx [argument]]...
unset [name]...
export [name]...
set [var [= value]]
set var [n] = word
unset pattern
setenv [VAR [word]]
unsetenv variable
set [±abCefhkmnopstuvx] [±o option]... [±A name] [arg]...
unset [-f] name...
**export [name [=value]]...
**export [-p]
set 組み込みコマンドには次のようなオプションがあります。
どのフラグも変更しません。$1 に – を設定する際に便利です。
修正または作成された変数にエクスポートのマークを付けます。
コマンドが 0 以外の終了状態で終了した場合、直ちに終了します。
ファイル名を生成しないようにします。
関数の定義時に、関数コマンドを検索しその位置を記憶します (通常、関数コマンドは関数実行時に検索されます)。
コマンド名の前にあるキーワード引数だけでなく、 すべてのキーワード引数がコマンド用の環境に置かれます。
コマンドを読み取るが、実行しません。
1 つのコマンドを読み取り、実行したあと、終了します。
未設定の変数を置換時にエラーとして扱います。
シェル入力行の読み取り時に、その内容を表示します。
コマンドの実行時に、コマンドと引数の内容を表示します。
– の代わりに + を使用すると、これらのフラグが無効になります。これらのフラグはシェルの起動時にも使用できます。現在セットされているフラグは、$– で見つけられます。argument は定位置パラメタで、$1、$2、. . . へ順に割り当てられます。argument が指定されない場合、すべての名前の値が出力されます。 unset は name ごとに、対応する変数または関数値を削除します。変数 PATH 、PS1、PS2、MAILCHECK および IF は設定解除できません。
export 組み込みコマンドでは、指定された name に対し、ひきつづき実行されるコマンドの環境へ 自動的にエクスポートされるようにマークを付けます。引数を省略すると、現在のシェル実行中にエクスポートのマークが付けられた 変数名を一覧表示します。関数名はエクスポートされません。
引数を指定しないと set はすべてのシェル変数の値を表示します。複数ワードからなる値は括弧でくくられて表示されます。 引数 var だけを指定すると、set は空 (NULL) の値を var が示す変数に割り当てます。引数を var = value の形式で指定すると、set は、変数 var に値 value を割り当てます。value は次のいずれかです。
単一ワード (もしくは引用符付きの文字列)
空白で区切られた、括弧付きワードの並び
値は、割り当てられる前に、コマンドおよびファイル名展開されます。set var[n]=word 形式は、複数ワードからなる値の n 番目のワードを word に置き換えます。
unset は pattern が示すファイル名置換パターンに一致する名の変数を削除します。 `unset *' と指定すると、すべての変数が削除されます。ただしこれは、 csh の動作に悪影響をおよぼします。
引数を指定しないと setenv はすべての環境変数を表示します。引数 VAR を指定すると、setenv は環境変数 VAR に空の値 (NULL) を設定します (慣習上、環境変数名は大文字で指定されるのが通常)。VAR と word の両引数を指定すると、setenv は、VAR に単一ワードまたは引用符付き文字列である値 word を設定します。環境変数 PATH は、コロンで区切られた複数の word 引数を指定できます ( 後述の「使用例」を参照 ) 。最もよく使用される環境変数 USER 、TERM 、PATH は、自動的に csh 変数 user、term、path から (へ) インポート (エクスポート) されます。これらの変数を変更する場合には setenv を使用してください。 さらにシェルは、csh 変数 cwd が変更されるたびに、その値を 環境変数 PWD へ設定します。
環境変数 LC_CTYPE、LC_MESSAGES、LC_TIME、LC_COLLATE、LC_NUMERIC、LC_MONETARY は、C シェル内で変更されると新しい値が即座に有効になります。これらの環境変数の詳細については environ(5) を参照してください。
unsetenv は環境から variable が示す変数を削除します。unset のようなパターンマッチングは行いません。
set コマンドのフラグの意味は以下のとおりです。
配列の代入。name で示される変数の設定を解除し、arg リストから順々に値を割り当てます。+A は、最初の変数設定を解除しません。
定義される後続の変数すべてを自動的にエクスポートします。
バックグラウンドジョブの完了を非同期的にユーザーに通知します。
シェルのリダイレクト演算子「>」によって既存のファイルが上書きされるのを防ぎます。リダイレクト演算子「>|」は、個々のファイルに対して、このオプションよりも優先されます。
コマンドの終了状態が 0 でない場合、ERR トラップ (設定されていれば) を実行し、終了します。このモードは、プロファイル読み取り時は無効です。
ファイル名の生成を無効にします。
各コマンドは、最初に検出された時点で、 検索済み別名になります。
コマンド名に先行するものだけでなく、 すべての変数代入引数をコマンドの環境に格納します。
バックグラウンドジョブを個別のプロセスグループで実行し、 完了時にメッセージを 1 行表示します。バックグラウンドジョブの終了状態は 完了メッセージで報告されます。ジョブ制御を備えたシステムでは、このフラグは 対話型シェルに対して自動的に有効になります。
コマンドを読み取り、構文エラーがないかチェックします。 実行は行いません。対話型シェルに対しては無視されます。
現在のオプション設定を標準出力に書き出します。コマンドとしてシェルに再入力できる形式で書き出されるため、同じオプション設定を再現するときに便利です。
このフラグの後に指定する引数は、以下のオプション名のいずれかです。
-a と同じです。
-e と同じです。
バックグラウンドジョブをすべて低い優先度で実行します。 これはデフォルトモードです。
コマンド入力用に、emacs 形式のインラインエディタを起動します。
コマンド入力用に、gmacs 形式のインラインエディタを起動します。
ファイルの終わりを検出してもシェルは終了しません。 終了させるには exit コマンドを使用する必要があります。
-k と同じです。
ファイル名生成によって生成されるディレクトリ名には、 すべて最後に / を付加します。
-m と同じです。
シェルのリダイレクト演算子「>」によって既存のファイルが上書きされるのを防ぎます。リダイレクト演算子「>|」は、個々のファイルに対して、このオプションよりも優先されます。「-C」と同じです。
-n と同じです。
-f と同じです。
履歴ファイルに関数定義を保存しません。
-b と同じです。
-u と同じです。
-p と同じです。
-v と同じです。
-h と同じです。
vi 形式のインラインエディタの挿入モードになります。033 というエスケープ文字を押すと、 挿入モードから制御モードに変わります。 Return で行を送信します。
各文字を vi モードで入力されたときと同様に処理します。
-x と同じです。
オプション名を指定しない場合、-o は現在のオプション設定を表示します。
$HOME/.profile ファイルを処理しないようにし、ENV ファイルの代わりに /etc/suid_profile ファイルを使用します。このモードは、 実効ユーザー ID が実ユーザー ID と等しくないとき、また実効グループ ID が実グループ ID と等しくないときには 必ず有効になります。このモードを無効にすると、 実効ユーザー ID が実ユーザー ID に、実効グループ ID が実グループ ID にそれぞれ設定されます。
定位置パラメタを辞書編集方式の順にソートします。
コマンド 1 つを読み取って実行し、 終了します。
置換を行う際に、設定されていないパラメタを エラーとして扱います。
シェルへの入力行を読み取り時に表示します。
コマンドとその引数を実行時に表示します。
-x フラグと -v フラグを無効にし、フラグに対する引数の検査を停止します。
どのフラグも変更しません。このフラグは、$1を – で始まる値に設定する際に便利です。このフラグの後に引数がない場合、定位置パラメタが設定解除されます。
– の代わりに + を使用すると、これらのフラグが無効になります。これらのフラグはシェル起動時にも使用できます。現在設定されているフラグは、$– で見ることができます。-A を指定しないかぎり、残りの引数は定位置パラメタとなり、$1 $2 . . . に順番に割り当てられます。引数を 1 つも指定しない場合には、すべての変数の名前と値を標準出力上に表示します。
name が示す変数の設定を解除します。つまり、それらの変数の値と属性を消去します。 読み取り専用の変数は設定を解除できません。-f フラグが指定されていると、name 引数は関数名を表します。ERRNO、LINENO、MAILCHECK、OPTARG、OPTIND、RANDOM、SECONDS、TMOUT、および _ の設定を解除すると、これらの変数の特殊な意味が削除されます。後でこれらの変数に値を代入しても、特殊な意味はないままです。
unset を使用すると name が示す変数の設定を解除します。 つまり、それらの変数の値と属性を消去します。読み取り専用の変数は設定を解除できません。-f フラグが指定されていると、name 引数は関数名を表します。ERRNO、LINENO、MAILCHECK、OPTARG、OPTIND、RANDOM、SECONDS、TMOUT、および _ の設定を解除すると、これらの変数の特殊な意味が削除されます。後でこれらの変数に値を代入しても、 特殊な意味はないままです。
export 組み込みコマンドでは、指定された name に対し、後で実行されるコマンドの環境へ 自動的にエクスポートされるようにマークを付けます。
-p を指定したとき、export は、すべてのエクスポートされる変数の名前と値を、以下の形式で標準出力に書き出します。
"export %s=%s\ ", name, value |
上記は、name が設定されている場合です。
"export %s\ ", name |
上記は、name が設定されていない場合です。
コマンドとしてシェルに再入力できる形式で書き出される (引用も適切に使用される) ため、エクスポートされる変数の名前と値をシェル実行環境で再現するときに便利です。ただし、この場合、以下のような制限があります。
出力時に値が設定されていた読み取り専用の変数は、元の状態には戻りません。
出力時に値が設定されていなかった変数に、状態を保存したときから保存した出力をシェルに再入力するまでの時間が値として割り当てられた場合、その変数は未設定の状態には戻りません (つまり、その値は保持されます)。
1 つまたは 2 つの (*) アスタリスクが先頭に付加されている ksh(1) コマンドは、以下のような特殊な処理を受けます。
コマンドが完了しても、コマンドの直前の 変数代入リストは依然として有効です。
入出力のリダイレクトは変数代入後に行われます。
エラーが発生すると、それを含むスクリプトは中止されます。
変数代入形式で、** から始まるコマンドに続くワードは、変数代入と同一の規則で展開されます。つまり、チルド置換は = 符号の後に実行され、ワード分割とファイル名生成は実行されません。
次の例では、/bin、/usr/bin、/usr/sbin、/usr/ucb/bin ディレクトリにあるファイルをその順番で検索するために、 環境変数 PATH を設定しています。
setenv PATH "/bin:/usr/bin:/usr/sbin:usr/ucb/bin"
次の属性については attributes(5) のマニュアルページを参照してください。
属性タイプ |
属性値 |
使用条件 |
SUNWcsu |