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 [±abCefGhkmnoprstuvx] [±o option]... [±A vname] [arg]...
+unset [-fnv] vname...
++export [-p] [name[= value]]...
set 組み込みコマンドには次のようなオプションがあります。
どのフラグも変更しません。$1 に – を設定する際に便利です。
修正または作成された変数にエクスポートのマークを付けます。
コマンドが 0 以外の終了ステータスで終了した場合、直ちに終了します。
ファイル名を生成しないようにします。
関数の定義時に、関数コマンドを検索しその位置を記憶します (通常、関数コマンドは関数実行時に検索されます)。
コマンド名の前にあるキーワード引数だけでなく、すべてのキーワード引数がコマンド用の環境に置かれます。
コマンドを読み取るが、実行しません。
1 つのコマンドを読み取り、実行したあと、終了します。
未設定の変数を置換時にエラーとして扱います。
シェル入力行の読み取り時に、その内容を表示します。
コマンドの実行時に、コマンドと引数の内容を表示します。
– の代わりに + を使用すると、これらのフラグは無効になります。これらのフラグはシェル起動時にも使用できます。現在セットされているフラグは、$– で見つけられます。残りの argument は定位置パラメータであり、$1、$2、. . . に順番に割り当てられます。argument が指定されていない場合は、すべての名前の値が出力されます。
unset は name ごとに、対応する変数または関数値を削除します。変数 PATH、PS1、PS2、MAILCHECK、および は設定解除できません。
export 組み込みコマンドでは、指定された name に対し、ひきつづき実行されるコマンドの環境へ自動的にエクスポートされるようにマークを付けます。引数を省略すると、現在のシェル実行中にエクスポートのマークが付けられた変数名を一覧表示します。関数名はエクスポートされません。
引数を設定しないと set はすべてのシェル変数の値を表示します。複数ワードからなる値は括弧でくくられて表示されます。引数 var のみを設定すると、set は空の (NULL) 値を var が示す変数に割り当てます。引数を var = value の形式で設定すると、set は var が示す変数に value が示す値を割り当てます。value は次のいずれかです。
単一ワード (もしくは引用符付きの文字列)
スペースで区切られた、括弧付きワードの並び
値は、割り当てられる前に、コマンドおよびファイル名展開されます。set var[n]=word という形式は、複数の単語からなる値の n 番目の単語を word に置き換えます。
unset は pattern が示すファイル名置換パターンに一致する名の変数を削除します。`unset *' と指定すると、すべての変数が削除されます。
引数を設定しないと setenv はすべての環境変数を表示します。引数 VAR を指定すると、setenv は環境変数 VAR に空の値 (NULL) を設定します(慣例上、環境変数名は大文字で指定されるのが通常)。VAR と word の両方の引数が指定されている場合、setenv は VAR を word に設定します。これは、1 つの単語または引用符付きの文字列のどちらかである必要があります。環境変数 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 コマンド入力用に、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\n", name, value
これは、name が設定されている場合です。
"export %s\n", name
これは、name が設定されていない場合です。
コマンドとしてシェルに再入力できる形式で書き込まれる (引用も適切に使用される) ため、エクスポートされる変数の名前と値をシェル実行環境で再現するときに便利です。ただし、この場合、次のような制限があります。
出力時に値が設定されていた読み取り専用の変数は、元の状態には戻りません。
出力時に値が設定されていなかった変数に、状態を保存したときから保存した出力をシェルに再入力するまでの時間が値として割り当てられた場合、その変数は未設定の状態には戻りません (つまり、その値は保持されます)。
このマニュアルページでは、1 つまたは 2 つの * (アスタリスク) が先頭に付加されている ksh88(1) コマンドは、次のように特別に処理されます。
コマンドが完了しても、コマンドの直前の変数代入リストは依然として有効です。
入出力のリダイレクトは変数代入後に行われます。
エラーが発生すると、それを含むスクリプトは中止されます。
変数代入形式で、** を先頭に持つコマンドに続くワードは、変数代入と同一の規則で展開されます。つまり、チルド置換は = 符号のあとに実行され、ワード分割とファイル名生成は実行されません。
set はオプションおよび定位置パラメータを設定または設定解除します。- を付けてオプションを指定すると、オプションが設定されます。+ を付けてオプションを指定すると、オプションの設定が解除されます。
オプションや引数を付けずに set を使用すると、すべてのシェル変数の名前と値が現在のロケールの照合シーケンスの順序で表示されます。シェルへの再入力に適するように、値は引用符で囲まれます。
引数が指定されていない (オプション引数の終わり -- さえ指定されていない) 場合、定位置パラメータは変更されません。それ以外の場合は、–A オプションが指定されていないかぎり、定位置パラメータは引数のリストによって置き換えられます。定位置パラメータを設定するときは、最初の引数 -- が無視されます。
下位互換性のために、オプションを指定せずに set コマンドを使用すると (最初の引数は -)、–v および –x オプションが無効になります。追加の引数を指定すると、定位置パラメータが置換されます。
ksh では set に次のオプションがあります。
名前に「.」が含まれない各変数にエクスポート属性を設定して、現在のシェル環境で値を割り当てます。
定位置パラメータにではなく、添字 0 で始まる name で指定された配列に、引数を順番に割り当てます。
次のプロンプトまで待機せずに、バックグラウンドジョブの完了が検出されるとすぐにメッセージを標準エラーに書き込みます。
{...} グループ展開を有効にします。デフォルトではオンになっています。
リダイレクト演算子「>」を使用して、既存の標準ファイルが上書きされるのを防ぎます。「>|」リダイレクトは、この noclobber オプションよりも優先されます。
終了ステータスがゼロ以外の単純コマンドを使用すると、シェルが終了します。ただし、単純コマンドが次の場合は除きます。
&& または || リストに含まれる
if、while、または until の直後にあるコマンド
! 直後のパイプラインに含まれる
パス名展開が無効になります。
** 単独でも、パス名展開時にすべてのサブディレクトリに一致します。
廃止。別名の構文を持つ各コマンドが、最初に検出されたときに検索済みの別名になります。
csh と同様に ! 形式の履歴展開を有効にします。
廃止されました。name=value という形式の引数はすべて削除され、コマンドの変数代入リスト内に配置されます。通常、変数代入はコマンド引数の前に指定する必要があります。
これを有効にすると、バックグラウンドジョブを個別のプロセスグループで実行し、完了時にメッセージを 1 行表示します。ジョブ制御をサポートするシステム上の対話型シェルでは、このモードはデフォルトで有効になっています。
コマンドを読み取り、構文エラーがないかチェックします。ただし、コマンドは実行しません。通常、コマンド呼び出し時に指定されます。
オプションを指定しない場合、オプションと現在の設定のリストが標準出力に書き込まれます。+ を付けて呼び出された場合、シェルに再入力して設定を復元できる形式で、オプションが書き込まれます。このオプションを繰り返して、複数のオプションを有効または無効にすることができます。
option の値は、次のいずれかにする必要があります。
–a と同じです。
バックグラウンドジョブをすべて低い優先度で実行します。
–B と同じです。
emacs 編集モードを有効または無効にします。
–e と同じです。
–G と同等です。
gmacs を有効または無効にします。gmacs 編集モードは、CTRL-T の処理を除いて emacs 編集モードと同じです。
–H と同じです。
ファイルの終わりを検出しても対話型シェルは終了しません。
–k と同じです。
ファイル名生成によって生成されるディレクトリ名には、すべて最後に / を付加します。
–m と同じです。
ウィンドウ幅よりも長い行を編集するときに、複数の行を使用します。
–C と同じです。
–n と同じです。
–f と同じです。
このオプションは無効です。下位互換性を確保するために用意されています。
–b と同じです。
–u と同じです。
パイプラインのすべてのコンポーネントが完了するまでパイプラインは完了しません。パイプラインの終了ステータスは、0 以外の終了ステータスで終了した最後のコマンドの値か、またはすべてのコマンドが 0 の終了ステータスを返した場合は 0 になります。
–p と同じです。
前に「;」が付く単純コマンドは、–x を有効にした場合と同様に追跡されますが、実行はされません。
–h と同じです。
–v と同じです。
vi 編集モードを有効または無効にします。
vi 編集モードを使用するときは、標準入力モードを使用しないでください。
–x と同じです。
特権モード。–p を無効にすると、実効ユーザー ID が実ユーザー ID に設定され、実効グループ ID が実グループ ID に設定されます。–p を有効にすると、実効ユーザー ID および実効グループ ID がシェル起動時の値に復元されます。実ユーザー ID と実効ユーザー ID が同じでないとき、または実グループ ID と実効グループ ID が同じでないときは、常に –p オプションは有効になります。–p が有効になっているときは、ユーザープロファイルは処理されません。
制限されます。制限付きシェルを有効にします。このオプションは、いったん有効にすると設定を解除できません。
定位置パラメータをソートします。
廃止。1 つのコマンドを読み取ってから終了します。
有効にすると、未設定の変数を展開しようとするとエラーメッセージが表示されます。
冗長。読み取り時に入力を標準エラーに出力します。
実行トレース。シェルは各コマンドを、すべての展開のあとで、かつ PS4 パラメータの展開された値が先頭に付加されている実行の前に表示します。
ksh の set では、次の終了値が返されます。
正常終了。
エラーが発生した。
指定された名前ごとに、unset は現在のシェル実行環境から変数または関数 (–f が指定されている場合) の設定を解除します。読み取り専用の変数は設定を解除できません。
ksh の unset には次のオプションがあります。
name が関数名を指している場合は、関数定義の設定を解除します。
name が参照の変数を指している場合は、参照される変数ではなく、変数 name の設定が解除されます。それ以外の場合、このオプションは –v オプションと同等です。
name が変数名を指している場合は、設定を解除して、環境から削除します。これはデフォルトの動作です。
ksh の unset では、次の終了値が返されます。
正常終了。すべての名前は正常に設定解除されました。
エラーが発生したか、または 1 つ以上の name オペランドの設定を解除できませんでした。
export は、名前で指定された各変数にエクスポート属性を設定します。これにより、あとで実行されるコマンドの環境に変数が配置されます。=value が指定されている場合、変数 name は value に設定されます。
name を指定しない場合は、すべてのエクスポート済み変数の名前および値が標準出力に書き込まれます。
引数でフィールド分割やパス名展開が実行されないように、export は宣言コマンドとしてシェルに組み込まれています。チルド展開は値に対して行われます。
ksh の export には次のオプションがあります。
出力をシェルへの入力に使用可能な export コマンドの形式にして、現在のエクスポートを再作成できるようにします。
ksh の export では、次の終了値が返されます。
正常終了。
エラーが発生した。
このマニュアルページでは、1 つまたは 2 つの + が先頭に付加されている ksh(1) コマンドは、次のように特別に処理されます。
コマンドが完了しても、コマンドの直前の変数代入リストは依然として有効です。
入出力のリダイレクトは変数代入後に行われます。
エラーが発生すると、それを含むスクリプトは中止されます。
これらは有効な関数名ではありません。
変数代入形式で、++ を先頭に持つコマンドに続くワードは、変数代入と同一の規則で展開されます。つまり、チルド置換は = 符号のあとに実行され、フィールド分割とファイル名生成は実行されません。
次の例では、/bin、/usr/bin、および /usr/sbin ディレクトリ内のファイルをその順番で検索するように PATH 変数を設定します。
setenv PATH "/bin:/usr/bin:/usr/sbin"
属性についての詳細は、マニュアルページの attributes(5) を参照してください。
|
csh(1), ksh(1), ksh88(1), read(1), sh(1), typeset(1), attributes(5), environ(5)