Solaris man マニュアル
ユーザーコマンド                                           set(1)

【名前】
     set, unset, setenv, unsetenv, export - 現在のシェルおよび そ
     こから起動されたプロセスでの環境変数の特性を決定するシェル組
     み込み関数

【形式】
  [sh]
     set  [--aefhkntuvx [argument]] ...

     unset [name ...]

     export [name ...]

  [csh]
     set [ var [ = value]]

     set var [n] = word

     unset pattern

     setenv [ VAR [word]]

     unsetenv variable

  [ksh]
     set [_abCefhkmnopstuvx]  [_o option] ... [_A name] [arg ...]

     unset [-f] name ...

     **export  [ name [=value]] ...

     **export [-p]

【機能説明】
  [sh]
     set 組み込みコマンドには次のようなオプションがあります。

     --       どのフラグも変更しません。$1 に - を設定する際に 便
              利です。



     -a       修正または作成された変数にエクスポートのマークを 付
              けます。



     -e       コマンドが 0 以外の終了状態で終了した場合、直ちに終
              了します。




     -f       ファイル名を生成しないようにします。



     -h       関数の定義時に、関数コマンドを検索しその位置を記 憶
              し ます (通常、関数コマンドは関数実行時に検索されま
              す)。



     -k       コマンド名の前にあるキーワード引数だけでなく、す べ
              てのキーワード引数がコマンド用の環境に置かれます。



     -n       コマンドを読み取るが、実行しません。



     -t       1 つのコマンドを読み取り、実行したあと、終 了 し ま
              す。



     -u       未設定の変数を置換時にエラーとして扱います。



     -v       シェル入力行の読み取り時に、その内容を表示します。



     -x       コマンドの実行時に、コマンドと引数の内容を表示し ま
              す。



     - の代わりに + を使用すると、これらのフラグが無効に な り ま
     す。これらのフラグはシェルの起動時にも使用できます。現在セッ
     トされているフラグは、$- で見つけられます。argument は定位置
     パ ラメタで、$1、$2、... へ順に割り当てられます。argument が
     指定されない場合、すべての名前の値が出力されます。 unset  は
     name ごとに、対応する変数または関数値を削除します。変数 PATH
     、PS1、PS2、MAILCHECK および IF は設定解除できません。

     export 組み込みコマンドでは、指定された name に対し、ひき つ
     づき実行されるコマンドの環境へ自動的にエクスポートされるよう
     にマークを付けます。引数を省略すると、現在のシェル実行中にエ
     クスポートのマークが付けられた変数名を一覧表示します。関数名
     はエクスポートされません。



  [csh]
     引数を指定しないと set はすべてのシェル変数の値を表 示 し ま
     す。複数ワードからなる値は括弧でくくられて表示されます。引数
     var だけを指定すると、set は空 (NULL) の値を var が示す変 数
     に 割 り当てます。引数を var = value の形式で指定すると、set
     は、変数 var に値 value を割り当てます。value は次のいずれか
     です。

     word            単一ワード (もしくは引用符付きの文字列)



     (wordlist)      空白で区切られた、括弧付きワードの並び



     値は、割り当てられる前に、コマンドおよびファイル名展開されま
     す。 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
     のようなパターンマッチングは行いません。

  [ksh]
     set コマンドのフラグの意味は以下のとおりです。

     -A       配列の代入。name で示される変数の設定を解除し、 arg
              リストから順々に値を割り当てます。+A は、最初の変数
              設定を解除しません。



     -a       定義される後続の変数すべてを自動的にエクスポート し
              ます。



     -b       バックグラウンドジョブの完了を非同期的にユーザー に
              通知します。



     -C       シェルのリダイレクト演算子「>」によって既存のファイ
              ル が 上 書きされるのを防ぎます。リダイレクト演算子
              「>|」は、個々のファイルに対して、このオプション よ
              りも優先されます。



     -e       コマンドの終了状態が 0 でない場合、ERR トラップ (設
              定 さ れ ていれば) を実行し、終了します。このモード
              は、プロファイル読み取り時は無効です。



     -f       ファイル名の生成を無効にします。



     -h       各コマンドは、最初に検出された時点で、検索済み別 名
              になります。



     -k       コマンド名に先行するものだけでなく、すべての変数 代
              入引数をコマンドの環境に格納します。



     -m       バックグラウンドジョブを個別のプロセスグループで 実
              行し、完了時にメッセージを 1 行表示します。バックグ
              ラウンドジョブの終了状態は完了メッセージで報告さ れ
              ま す。ジョブ制御を備えたシステムでは、このフラグは
              対話型シェルに対して自動的に有効になります。



     -n       コマンドを読み取り、構文エラーがないかチェックし ま
              す。 実行は行いません。対話型シェルに対しては無視さ
              れます。



     +o       現在のオプション設定を標準出力に書き出します。コ マ
              ン ドとしてシェルに再入力できる形式で書き出されるた
              め、同じオプション設定を再現するときに便利です。



     -o オプシこのフラグの後に指定する引数は、以下のオプション 名
              のいずれかです。

              allexport       -a と同じです。




              errexit         -e と同じです。



              bgnice          バックグラウンドジョブをすべて低 い
                              優 先度で実行します。これはデフォル
                              トモードです。



              emacs           コマンド入力用に、emacs 形式のイ ン
                              ラインエディタを起動します。



              gmacs           コマンド入力用に、gmacs 形式のイ ン
                              ラインエディタを起動します。



              ignoreeof       ファイルの終わりを検出してもシェ ル
                              は終了しません。終了させるには exit
                              コマンドを使用する必要があります。



              keyword         -k と同じです。



              markdirs        ファイル名生成によって生成 さ れ る
                              ディ レクトリ名には、すべて最後に /
                              を付加します。



              monitor         -m と同じです。



              noclobber       シェルのリダイレクト演算子 「>」 に
                              よっ て既存のファイルが上書きされる
                              のを防ぎます。リダイレクト 演 算 子
                              「>|」 は、個々のファイルに対して、
                              このオプションよりも優先されま す。
                              「-C」と同じです。



              noexec          -n と同じです。



              noglob          -f と同じです。



              nolog           履歴ファイルに関数定義を保存しま せ
                              ん。



              notify          -b と同じです。



              nounset         -u と同じです。



              privileged      -p と同じです。



              verbose         -v と同じです。



              trackall        -h と同じです。



              vi              vi 形式のインラインエディタの 挿 入
                              モー ド に なります。033 というエス
                              ケープ文字を押すと、挿入モードか ら
                              制御モードに変わります。Return で行
                              を送信します。



              viraw           各文字を vi モードで入力されたと き
                              と同様に処理します。


              xtrace          -x と同じです。




     オプション名を指定しない場合、-o は現在のオプション設定を 表
     示します。

     -p       $HOME/.profile ファイルを処理しないよう に し、 ENV
              ファイルの代わりに /etc/suid_profile ファイルを使用
              します。このモードは、実効ユーザーID が実ユーザーID
              と 等しくないとき、また実効グループ ID が実グループ
              ID と等しくないときには必ず有効になります。このモー
              ド を 無 効 にすると、実効ユーザーID が実ユーザーID
              に、実効グループ ID が実グループ ID にそれぞれ設 定
              されます。



     -s       定位置パラメタを辞書編集方式の順にソートします。



     -t       コマンド 1 つを読み取って実行し、終了します。



     -u       置換を行う際に、設定されていないパラメタをエラー と
              して扱います。



     -v       シェルへの入力行を読み取り時に表示します。



     -x       コマンドとその引数を実行時に表示します。



     -        -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=%s0, name, value

     上記は、name が設定されている場合です。

     "export %s0, name

     上記は、name が設定されていない場合です。

     コマンドとしてシェルに再入力できる形式で書き出される (引用も
     適 切 に使用される) ため、エクスポートされる変数の名前と値を
     シェル実行環境で再現するときに便利です。ただし、この場合、以
     下のような制限があります。

     1.  出力時に値が設定されていた読み取り専用の変数は、元の状態
         には戻りません。


     2.  出力時に値が設定されていなかった変数に、状態を保存したと
         きから保存した出力をシェルに再入力するまでの時間が値とし
         て割り当てられた場合、その変数は未設定の状態には戻りませ
         ん (つまり、その値は保持されます)。


     1 つまたは 2 つの (*) アスタリスクが先頭に付加さ れ て い る
     ksh(1) コマンドは、以下のような特殊な処理を受けます。

     1.  コマンドが完了しても、コマンドの直前の変数代入リストは依
         然として有効です。


     2.  入出力のリダイレクトは変数代入後に行われます。


     3.  エラーが発生すると、それを含むスクリプトは中止されます。


     4.  変数代入形式で、** から始まるコマンドに続くワードは、 変
         数代入と同一の規則で展開されます。つまり、チルド置換は =
         符号の後に実行され、ワード分割とファイル名生成は実行され
         ません。


【使用例】
  [csh]
     次の例では、/bin、/usr/bin、/usr/sbin、/usr/ucb/bin ディレク
     ト リにあるファイルをその順番で検索するために、環境変数 PATH
     を設定しています。

          setenv PATH "/bin:/usr/bin:/usr/sbin:usr/ucb/bin"



【属性】
     次の属性については attributes(5) のマニュアルページを参照 し
     てください。
     ____________________________________________________________
    |         属性タイプ          |            属性値           |
    |_____________________________|_____________________________|
    | 使用条件                    | SUNWcsu                     |
    |_____________________________|_____________________________|

【関連項目】
     csh(1), ksh(1), read(1), sh(1),  typeset(1),  attributes(5),
     environ(5)