本文に進む 日本−日本語
日本HPホーム 製品とサービス お客様サポート/ ダウンロード ソリューション ご購入の方法
≫ お問い合わせ
詳細検索オプション
日本HPホーム
HP-UX リフアレンス > s

sh-posix(1)

HP-UX 11i v2: 2007 年 12 月
≫ 

テクニカル ドキュメント

フィードバック
ここから本文が始まります

 ≫ 目次

 ≫ 索引

名称

sh-posix: sh, rsh ― 標準および制限付きの POSIX.2 準拠コマンドシェル

構文

shaefhikmnprstuvx] [±o option]... [-c string] [arg]...

rshaefhikmnprstuvx] [±option]... [-c string] [arg]...

特記事項

このシェルは、POSIX.2 『シェルおよびユーティリティ』 標準のシェル仕様に準拠するように作られています。 このシェルの他の標準への準拠については、 システムに付属の標準準拠ドキュメントで確認してください。

「説明」の項目一覧

シェルの呼び出しティルドの置換え環境
オプションコマンドの置換え関数
rsh の制限パラメータの置換えジョブ
定義空白の解釈シグナル
コマンドファイル名生成実行
単純コマンド引用コマンドリエントリー
複合コマンド算術評価コマンド行編集
特殊コマンドプロンプトemacs/gmacs 編集モード
コメント条件式vi 編集モード
別名指定入出力 

説明

sh はコマンドプログラミング言語で、 ターミナルまたはファイルから読み込んだコマンドを実行します。

rshsh の制限付きバージョンです。『rsh の制限』 の項を参照してください。

シェルの呼び出し

シェルが exec*() システムコールによって呼び出され、引き数ゼロ (シェルパラメータ 0) の最初の文字がダッシュ (-) ならば、シェルはログインシェルであるものと仮定され、コマンドは最初に /etc/profile から、次に現在のディレクトリの .profile または $HOME/.profile (いずれかがある場合) から読み出されます。 最後に、コマンドは、環境パラメータ ENV の値でパラメータ置換えを行うことによって指定されたファイルが存在すれば、 そのファイルから読み出されます。-s オプションがなく、arg がある場合、パス検索を最初の arg で行って実行するスクリプトの名前を判定します。arg 付きで sh を実行する際、スクリプト arg には読出しパーミッションがなければならず、setuid および setgid 設定値はすべて無視されます。 コマンドが次に以下の説明に従って読み込まれます。

特殊コマンド』 の項にリストしてあるコマンドの一部の出力を除いて、 シェル出力は標準エラー (ファイル記述子 2) に書き出されます。

オプション

以下のオプションがシェル呼び出し時にシェルによって解釈されます。

-c string

string からコマンドを読み取ります。

-i

-i が存在するか、またはシェル入出力がターミナル (tty() によってレポートされている) に接続されていると、シェルは対話型です。 この場合、SIGTERM は無視され、SIGINT はキャッチされ、無視されます (wait が割り込み可能であるように)。すべての場合において、SIGQUIT はシェルによって無視されます (signal(5) を参照)。

-r

シェルは制限付きシェルです。

-s

-s が存在するか、または引き数が残っていない場合、 コマンドは標準入力から読み出されます。

残りのオプションおよびオペランドについては、『特殊コマンド』 の項の set コマンドで説明してあります。

rsh の制限

rsh は、 標準シェルよりも機能が制限される実行環境およびログイン名を セットアップするのに使用します。rsh の動作は sh と同じですが、次の動作が禁止されている点だけが異なります。

  • ディレクトリの変更 (cd 特殊コマンドおよび cd(1) を参照)

  • SHELLENV、 または PATH の値の設定

  • / を含むパス名またはコマンド名の指定

  • 出力のリダイレクト (>>|<>、 および >>)

上記の制限は、.profile および ENV ファイルの解釈後に適用されます。

実行するコマンドがシェルプロシージャであることがわかると、rshsh を呼び出して実行します。 そのため、 エンドユーザーには標準シェルの全機能にアクセスできるシェルプロシージャが 提供されますが、 コマンドメニューの使用が限られたものに制限されます。 この方法では、 エンドユーザーに同じディレクトリ内の書き込みおよび実行パーミッションが ないものとみなします。

これらの規則を適用することにより、.profile ファイルの作成者は保証済みのセットアップアクションを 実行すると同時にユーザーを 適切なディレクトリ (ログインディレクトリではないもの) に入れて、 ユーザーアクションを完全に制御することができます。

システム管理者は、rshによって、 安全に呼び出せるコマンドのディレクトリ (通常は /usr/rbin) を頻繁にセットアップします。HP-UX は、制限付きのユーザーに適した制限付きエディター red (ed(1) を参照) を提供しています。

定義

メタキャラクタ

以下の文字のいずれか。

; & ( ) | < > 改行 スペース タブ

空白

タブまたはスペース。

識別子

英字またはアンダースコアから始まる一連の英字、 数字、またはアンダースコア。 識別子は関数 および名前付きパラメータ の名前として使用されます。

ワード

1つまたは複数の引用されないメタキャラクタ で区切られた一連の文字

コマンド

シェル言語の文法で書かれた文字列。 シェルは各コマンドを読み込み、必要なアクションを直接、 または個別のユーティリティを呼び出すことによって実行します。

特殊コマンド

別のプロセスを作成することなくシェルによって実行されるコマンド。 説明に記載されている副次的影響を除いて、 大部分の特殊コマンドは個別のユーティリティとして実現できます。

#

コメントデリミタ。# の後に続く文字は、次の改行まですべて無視されます。

パラメータ

識別子 、10進数、または !#$*-?@_ のいずれかの文字。『パラメータの置換え』 の項を参照。

名前付きパラメータ

値を割り当てることができる パラメータ 。『パラメータの置換え』 の項を参照。

変数

パラメータ。

環境変数

ローカルシェルの外部で、通常は export 特殊コマンドによって認識される パラメータ。

コマンド

コマンドには、実行可能ファイルを実行する単純コマンド、 シェル内で実行される特殊コマンド、および単純、特殊、 複合の各コマンドのグループに対する制御の流れを用意する複合コマンドが あります。

単純コマンド

単純コマンドは空白で区切られた一連のワードで、 前にパラメータ割り当てリストを置くことができます (『環境』 の項を参照)。 最初のワードは、実行するコマンドの名前を指定します。 以下に示すものを除いて、 残りのワードは呼び出すコマンドに引き数として渡されます。 コマンド名は引き数 0 として渡されます (exec(2) を参照)。単純コマンドの value は、正常終了した場合はその終了ステータスで、異常終了した場合は 128+errorstatus です (errorstatus の値のリストについては、signal(5) を参照)。

パイプライン は、縦線 (|) によって区切った1つ以上のコマンドの列で、オプションで前に感嘆符 (!) を付けることができます。 各コマンドの標準出力は、最後のものを除いて次のコマンドの標準入力にパイプ (pipe(2) を参照) で接続されます。 各コマンドは別個のプロセスとして実行されます。 シェルは、最後のコマンドが終了するまで待ちます。! がパイプラインの前になければ、パイプラインの終了ステータスは、 そのパイプラインの最後のコマンドの終了ステータスです。 そうでなければ、パイプラインの終了ステータスは、 そのパイプラインの最後のコマンドの終了ステータスの論理否定です。

list は、;&&&、または || によって区切られ、オプションで ;&、または |& によって終了する、1つまたは複数のパイプラインの列です。

;

これより前のパイプラインを順次に実行します。list には、 コマンドを区切るためにセミコロンの代わりに任意個数の改行を入れることが できます。

&

これより前のパイプラインを非同期に実行します (つまり、シェルはそのパイプラインの終了を待ちません)。

|&

これより前のコマンド、または 2 ウェイパイプが 親シェルに対して確立されたパイプラインを、 非同期に実行します。 生成されたコマンドの標準入出力は、特殊コマンド read および print-p オプションを使用して、親シェルによって読み書きできます。

&&

これより後の list を、これより前のパイプラインがゼロの値を戻す場合にのみ実行します。

||

これより後の list を、これより前のパイプラインが非ゼロの値を戻す場合にのみ実行します。

これらの5つのシンボルのうち、;&、および |& の優先順位は等しく、&& および || よりも下位です。シンボル && および || の優先順位も等しくなっています。

複合コマンド

特に説明のない限り、複合コマンドによって戻される値は、 複合コマンドで実行される最後の単純コマンドの値です。 セグメントセパレータの ; は、1つ以上の改行で置き換えることができます。

以下のキーワードは、コマンドの最初のワードとしてのみ、 引用されていない場合に認識されます。

! } elif for then
[[ case else function time
]] do esac if until
{ done fi select while

複合コマンドは次のいずれかです。

case word  in [[;] [(] pattern [| pattern]...) list  ;;]... ; esac

  • word に一致する最初の pattern に対応づけられた list を実行します。パターンの形式は、ファイル名生成で使用されるものと同じです (『ファイル名生成』 の項を参照)。ケースターミネータの ;; は、改行で置き換えることはできません。

for identifier [in word ...]  ; do list ; done

  • identifier を各 word に順番に設定し、do list を実行します。in word ... を省略した場合は、設定された位置パラメータごとに identifier を設定します。『パラメータの置換え』 の項を参照してください。 実行は、リストに位置パラメータまたはワードがなくなった時点で終了します。

function identifier { list ; }
identifier () { list ; }

  • という名前をもつ関数を定義します。 その識別子をコマンドとして実行することによって、関数が呼び出されます。 関数の本体は、{} の間にあるコマンドの list です。『関数』 の項を参照してください。

if list ; then list ; [elif list ; then list ;]... [else list ;] fi

  • if list を実行し、その終了ステータスがゼロの場合は、最初の then list を実行します。ゼロ以外の場合は、elif list (指定されている場合) を実行し、その終了ステータスがゼロであれば次の then list を実行します。それもゼロでないと、else list (指定されている場合) を実行します。else list または then list が1つも実行されない場合、if はゼロの終了ステータスを戻します。

select identifier [in word ...] ; do list ; done

  • 標準エラー (ファイル記述子 2) に word のセットを、それぞれ前に数値を付けてプリントします。 in word ... を省略した場合は、代わりに位置パラメータをプリントします (『パラメータの置換え』 の項を参照)。PS3 プロンプトをプリントして、標準入力から REPLY パラメータに行を読み込みます。この行がリストにある word のいずれかの数で構成されていると、identifier を対応する word に設定し、list を実行し、PS3 プロンプトを繰り返します。 行が空白の場合は、選択リストを再びプリントし、PS3 プロンプトを繰り返します。それ以外の場合は identifier をヌルに設定し、list を実行し、PS3 プロンプトを繰り返します。選択ループは、break 特殊コマンドまたはファイル終わりが検出されるまで繰り返されます。

time pipeline

  • pipeline を実行し、所要時間、ユーザー時間、 システム時間を標準エラーにプリントします。time キーワードは、pipeline 内のどの位置に指定しても、pipeline 全体の時間を計測します。pipeline で特定のコマンドの時間を計測する方法については、time(1) を参照してください。

until list ; do list ; done

  • until list を実行します。 リストの最後のコマンドの終了ステータスがゼロ以外であれば、do list を実行し、もう一度 until list を実行します。until list の最後のコマンドの終了ステータスがゼロの場合、ループを終了します。do list でコマンドが実行されないと、until はゼロの終了ステータスを戻します。

while list ; do list ; done

  • while list を実行します。リストの最後のコマンドの終了ステータスがゼロであれば、do list を実行し、もう一度 while list を実行します。while list の最後のコマンドの終了ステータスがゼロ以外の場合、ループを終了します。do list でコマンドが実行されないと、while はゼロ以外の終了ステータスを戻します。

( list )

  • 個別の環境で list を実行します。 ネスティングのために2つの隣り合う左かっこが必要な場合は、 算術評価を避けるために、間にスペースを挿入しなければなりません。

{ list ; }

  • list を実行しますが、個別の環境ではありません。{ はキーワードで、後続の空白が認識される必要がある点に注意してください。

[[ expression ]]

  • expression を評価し、expression が真であればゼロの終了ステータスを戻します。expression の説明については、『条件式』 の項を参照してください。[[ および ]] はキーワードで、それらと expression との間に空白が必要であることに注意してください。

特殊コマンド

特殊コマンドは、シェルプロセスで実行される単純コマンドです。 これらは、入出力リダイレクトを行えるようにします。 特に他の説明が ない限り、ファイル記述子 1(標準出力) がデフォルトの出力位置で、 構文エラーがない場合の終了ステータスはゼロです。

"%" のマークが付けられたコマンドは、以下の方法で特別に処理されます。

1.

コマンドの前にある変数の代入式リストは、コマンド終了時にも有効です。

2.

入出力リダイレクトは変数の代入の後で処理されます。

3.

エラーが発生した場合、 そのエラーのあるスクリプトが打ち切られることがあります。

コマンドの後に続く "&" のマークが付けられた変数の代入の形式のワードは、 変数の代入と同じ規則で展開されます。 これは、ティルドの置換えが = 符号の後で実行され、 ワード分割とファイル名生成は行われないことを意味します。

% : [arg]...

  • (コロン)  パラメータ展開だけを行います。ゼロの終了コードが戻されます。

% . file [arg]...

  • (ピリオド)  file からコマンドを読み込んで実行し、戻ります。 コマンドは現在のシェル環境で実行されます。file があるディレクトリを探し出すために PATH によって指定された検索パスが使用されます。引き数 arg を指定すると、それらが位置パラメータになります。 そうでなければ、位置パラメータは変化しません。 終了ステータスは、実行された最後のコマンドの終了ステータスです。

& alias [-tx] [name[=value]]...

  • name=value が指定されていると、name を別名として定義し、それに値 value を割り当てます。value に後続スペースがあると、 次のワードが別名の置換えについてチェックされます。

  • name=value が省略されていると、標準出力に name=value の形式で別名のリストをプリントします。

  • name だけが =value なしで指定されていると、指定された別名をプリントします。

  • -t を指定すると、トラックされた別名を設定します。 トラックされた別名の値は、指定された name に対応する絶対パス名です。トラックされた別名の値は PATH の値がリセットされると定義設定解除されますが、 別名はトラックされた状態のままです。 name=value が省略されていると、標準出力に name=pathname の形式でトラックされた別名のリストをプリントします。

  • -x を指定すると、エクスポートされた別名を設定します。 エクスポートされた別名は、サブシェル環境に渡って定義されます。 name=value が省略されていると、標準出力に name=value の形式でエクスポートされた別名のリストをプリントします。

  • 別名は、別名が定義されていない name が指定されない限り、真を戻します。

  • unalias 特殊コマンドも参照してください。

bg [job]...

  • 指定された job をバックグラウンドに入れます。job を指定しなければ、現在のジョブがバックグラウンドに入ります。job のフォーマットの説明については、『ジョブ』 の項を参照してください。 また、fg 特殊コマンドも参照してください。

% break [n]

  • もしあれば、囲まれた forselectuntil、または while ループから抜け出します。n を指定すると、n レベルをブレークします。

cd [-L|-P] [arg]
cd old new

  • 最初の形式では、現在の作業ディレクトリ (PWD) を arg に変更します。arg- ならば、ディレクトリは前のディレクトリ (OLDPWD) に変更されます。 シェルパラメータ HOME は、デフォルト arg です。cd の実行後は、PWD および OLDPWD 環境変数はそれぞれ、 実行後の新しい現在のディレクトリと前のディレクトリに設定されます。

  • -L (デフォルト) を指定すると、 シンボリックリンクを処理する際に論理名称付けを保存します。cd -L .. は、 現在のディレクトリを ルートディレクトリに対して 1 パス構成要素だけ近くに移動します。

  • -P を指定すると、シンボリックリンクを処理する際に物理パスを保存します。cd -P .. は、 作業ディレクトリを現在のディレクトリの実際の親ディレクトリに変更します。

  • シェルパラメータ CDPATH は、arg があるディレクトリの検索パスを定義します。代替ディレクトリ名はコロン (:) で区切られます。CDPATH がヌルまたは未定義の場合、デフォルト値は現在のディレクトリです。 現在のディレクトリがヌルパス名によって指定されることに注意してください。 これは、等号の直後、 またはパスリスト以外のコロンデリミタの間の任意の位置に入れることが できます。arg/ から始まる場合、検索パスは使用されません。 そうでなければ、パスにおける各ディレクトリから arg が検索されます。cd(1) も参照してください。

  • cd の第 2 の形式は、現在のディレクトリ名 PWD の文字列 old を文字列 new に置き換え、この新しいディレクトリに移動しようとします。

command [arg]...

  • arg をコマンドとして処理しますが、arg における関数参照は使用不能にします。この使用法と説明については、command(1) を参照してください。

% continue [n]

  • 囲まれている forselectuntil、または while ループの次の反復を再開します。n を指定すると、n 番目のループで再開します。

echo [arg]...

  • arg を標準出力にプリントします。使用法と説明については、echo(1) を参照してください。print 特殊コマンドも参照してください。

% eval [arg]...

  • 引き数をシェルへの入力として読み込み、生成されるコマンドを実行します。 置換えを 行わないと生成されるコマンドで認識されないキーワードおよび文字に ついては、 パラメータの置換えを行うことができます。

% exec [arg]...

  • パラメータ割り当ては、コマンドの完了後も有効です。arg を指定すると、引き数によって指定されるコマンドが、 新しいプロセスを作成することなく、このシェルの代わりに実行されます。 入出力引き数を入れることができ、現在のプロセスに影響を与えます。 引き数を指定しなければ、 入出力リダイレクトリストによる規定に従ってファイル記述子を修正します。 この場合、このメカニズムで オープンした 2 より大きいファイル記述子番号は、 別のプログラムの呼び出し時にクローズされます。

% exit [n]

  • n によって指定される終了ステータスで、シェルを終了します。n を省略した場合、終了ステータスは、 実行された最後のコマンドの終了ステータスです。 シェルで ignoreeof オプションが設定されている場合を除き、 ファイル終わりによってもシェルが終了します ( set 特殊コマンドを参照)。

%& export [name[=value]]...
%& export -p

  • 指定した変数 name を、 続いて実行されるコマンドの環境に 対する自動エクスポートにマーク付けします。 オプションで、変数に値を代入します。

  • 引き数を指定しないと、 すべてのエクスポートされた変数の名前および値を標準出力に書き出し、

  • 引き数に -p を指定すると、すべてのエクスポートされた変数の名前および値を、 引用を適切に使用して標準出力に書き出します。 したがって、 同じエクスポート結果を 得るコマンドとしてシェルに再入力するのに適しています。

fc [-r] [-e ename] [first [last]]
fc -l [-nr] [first [last]]
fc -s [old=new] [first]
fc -e - [old=new] [command]

  • 以前に対話式シェルに入力されたコマンドをリストまたは編集し、 再実行します。first から last までのコマンドの範囲が、ターミナルでタイプされた最後の HISTSIZE コマンドから選択されます。引き数 first および last は、数値または文字列として指定できます。 指定した文字列は、最も最近のコマンドの位置を特定するのに使用されます。 負の数は、現在のコマンド番号をオフセット指定するのに使用されます。

  • -l を指定すると、コマンドを標準出力にリストします。-l がなければ、 これらのキーボードコマンドがあるファイルに対してエディタープログラム ename を呼び出します。ename を指定しないと、パラメータ FCEDIT の値 (デフォルトは /usr/bin/ed) がエディターとして使用されます。 編集が終了すると、コマンド (ある場合) が実行されます。last を省略すると、first によって指定されたコマンドだけが使用されます。first を指定しなければ、編集に対するデフォルトは前のコマンド、 リストのデフォルトは -16 です。

  • -r を指定すると、コマンドの順序を反転します。

  • -n を指定すると、リスト時のコマンド番号を抑止します。

  • -s を指定すると、エディターを呼び出さずにコマンドを再実行します。

  • old=new 引き数は、再実行するコマンド内の文字列 old の最初の出現箇所を、文字列 new で置き換えます。

fg [job]...

  • それぞれの job を指定された順序でフォアグラウンドにします。job を指定しなければ、現在のジョブがフォアグラウンドになります。job のフォーマットの説明については、『ジョブ』 の項を参照してください。 また、bg 特殊コマンドも参照してください。

getopts optstring name [arg]...

  • 引き数リスト、引き数リストがない場合は位置パラメータで、 オプションが有効かどうかを検査します。 実行ごとに、name の次のオプションを戻します。使用法と説明については、getopts(1) を参照してください。

  • オプションは + または - で始まります。+ または - で始まらない引き数、または引き数 -- によって、オプションが終了します。optstring には getopts が認識する英字が入っています。英字の後に : が続いていると、そのオプションに引き数があるものとみなされます。 オプションと引き数は空白で区切ることができます。

  • -letter と指定されているオプションでは、nameletter に設定されます。 +letter と指定されているオプションでは、name+letter に設定されます。次の arg のインデックスは OPTIND に格納されます。オプション引き数があれば、OPTARG に格納されます。 オプション引き数が見つからないか、 または見つかったオプションが引き数をとらない場合は、OPTARG は設定されません。

  • optstring に先行 : を指定すると、getopts は無効なオプション文字を OPTARG に格納し、name を未定義のオプションの場合は ? に、また必要とされるオプションが欠落している場合は : に設定します。そうでなければ、getopts はエラーメッセージをプリントします。 それ以上オプションがない場合、終了ステータスはゼロ以外になります。

hash [utility]...
hash -r

  • 現在のシェル環境がユーティリティの位置を記憶する方法を決めます。utility を指定すると、記憶している位置リストにユーティリティ位置を追加します。 引き数を指定しなければ、リストの内容をプリントします。-r を指定すると、 それまで記憶していたすべてのユーティリティ位置を消去します。

jobs [-lnp] [job]...

  • 指定した各ジョブに関する情報、または job を指定していなければすべてのアクティブなジョブに 関する情報をリストします。-l を指定すると、通常の情報に加えてプロセス ID をリストます。-n を指定すると、 最後に通知されてから停止または終了したジョブのみを表示します。-p を指定すると、プロセスグループのみをリストします。job のフォーマットの説明については、『ジョブ』 の項を参照してください。

kill [-s signalprocess ...
kill -l
kill [-signalprocess ...

  • シグナル 15 (SIGTERM 、終了) または指定した signal を、指定したジョブまたはプロセスに送信します。 送信されたシグナルが、TERM (terminate) または HUP (hangup) の場合、 停止中のジョブやプロセスに対しては CONT (continue) シグナルが送信されます。 使用法と説明については、kill(1) を参照してください。

  • -l を指定すると、シグナル名とシグナル番号をリストします。

let arg ...
(( arg ...))

  • arg を、別個の算術式として評価します。算術式評価の説明については、『算術評価』 の項を参照してください。 終了ステータスは、 最後の式の値がゼロ以外ならば 0、ゼロならば 1 です。

% newgrp [-] [group]

  • 現在のシェルを、group をユーザーのグループとしてもつ新しいシェルで置き換えます。 デフォルトのグループはユーザーのログイングループです。- を指定すると、ユーザーの .profile ファイルおよび $ENV ファイルも実行されます。使用法と説明については、newgrp(1) を参照してください。 exec newgrp arg ... と等価です。

print [-nprRsu[n]] [arg]...

  • シェル出力メカニズム。オプションを指定しないか、オプション - または -- を指定すると、引き数を echo(1) の記述に従って標準出力にプリントします。printf(1) も参照してください。

  • -n を指定すると、出力に改行文字を追加しません。

  • -p を指定すると、標準出力ではなく |& で生成されたプロセスのパイプに引き数を書き出します。

  • -R または -r (raw モード) を指定すると、echo のエスケープ規則を無視します。-R を指定すると、-n 以外の後続の引き数およびオプションをすべてプリントします。

  • -s を指定すると、標準出力ではなくヒストリファイルに引き数を書き込みます。

  • -u を指定すると、出力先の1桁ファイル記述子ユニット番号 n を指定できます。デフォルトは 1 (標準出力) です。

pwd [-L|-P]

  • 現在の作業ディレクトリの名前をプリントします (print -r - $PWD に等価です)。-L を指定すると (デフォルト)、 現在のディレクトリの論理的意味を保存します。-P を指定すると、現在のディレクトリの物理的意味が シンボリックリンクの場合に、 それを保存します。cd 特殊コマンド、cd(1)ln(1)pwd(1) も参照してください。

read [-prsu[n]] [name?prompt] [name]...

  • シェル入力メカニズム。1行を (デフォルトでは標準入力から) 読み取り、それを IFS の文字をセパレータとして使用してワードに分割します。最初のワードは最初の name に、2 番目のワードは 2 番目の name にと順に割り当てられていき、残りのワードが順に最後の name まで割り当てられます。read(1) も参照してください。ファイル終わりが検出されなければ、戻りコードは 0 です。

  • -p を指定すると、入力行を |& を使ってシェルで生成されたプロセスの入力パイプからとります。-p オプションがあるファイル終わりによって、 別のプロセスを生成できるように、 このプロセスのためのクリーンアップが行われます。

  • -r (raw モード) を指定すると、行末の \ が行の継続を意味しなくなります。

  • -s を指定すると、入力をコマンドとしてヒストリファイルに保存します。

  • -u を指定すると、読み取り先の 1 桁のファイル記述子ユニットをします。 ファイル記述子は、exec 特殊コマンドでオープンできます。n のデフォルト値は 0 (標準入力) です。name を省略すると、REPLY がデフォルトの name として使用されます。

  • 最初の引き数に ? が入っていると、その引き数の残りの部分はシェルとの対話時に prompt として使用されます。

  • 指定したファイル記述子が書き込み用にオープンされており、 ターミナル装置ならば、プロンプトはそのユニットに出されます。 そうでなければ、プロンプトはファイル記述子 2(標準エラー) に出されます。

%& readonly [name[=value]]...
%& readonly -p

  • 指定する name を読み取り専用にマークします。 これらの名前は、以降の割り当てによって変更することはできません。

  • -p を指定すると、すべての読み取り専用変数の名前および値を、 適切に引用を使用したフォーマットで標準出力に書き出します。 したがって、 同じ属性設定結果を得るコマンドとしてシェルに再入力するのに適しています。

% return [n]

  • これにより、シェル関数は、n によって指定された戻りステータスで呼び出しスクリプトに戻ります。n を省略すると、 戻りステータスは実行された最後のコマンドの戻りステータスになります。n の下位 8 ビット (10 進 0 から 255 まで) だけが呼び出し元に渡されます。return が、関数または . スクリプト ( . 特殊コマンドを参照) でないときに呼び出されると、exit コマンドと同じ働きをします。

    % set [{-|+}abCefhkmnopstuvx] [{-|+}o option]... [{-|+}A name] [arg]...

  • 実行オプションをセット (-) またはクリア (+) するか、配列割り当てを実行 (-A+A) します。-A+A 以外のすべてのオプションを、シェルの呼び出し時に指定できます (『構文』 の項および 『シェルの呼び出し』 の項を参照してください)。

  • オプションの前で - の代わりに + を使用すると、そのオプションはオフになります。 これらのオプションはシェルの呼び出し時にも使用できます。 現在設定されている 1 文字のオプションのリストが、シェル変数 - に含まれています。これは、コマンド echo $- を用いて調べることができます。

  • - および + オプションは同一のコマンド内で合わせて使用できますが、-A または +A オプションは1つだけしか使用できません。

  • -A または +A を指定した場合を除き、残りの arg 引き数は位置パラメータ 12、 ... に順番に割り当てられます。

  • 引き数もオプションも指定しない set コマンドは、すべてのシェルパラメータの名前と値を標準出力に表示します。env(1) も参照してください。

  • オプションは次のように定義されます。

    -A

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

    -a

    その後定義されるパラメータを自動的にエクスポートします。

    -b

    バックグラウンドジョブが完了するごとに、非同期にユーザーに通知します。 シェルはユーザーにジョブの完了を通知する時点で、 現在のシェル実行環境で知られているプロセス ID のリストから、 該当するジョブのプロセス ID を削除することができます。

    -C

    リダイレクト > が既存のファイルを切捨てないようにします。 これがオンになっている場合にファイルを切捨てるには、>| が必要です。

    -e

    コマンドが、ゼロ以外の終了ステータスをもち、ifuntil、または while キーワードの後に続く複合リストの一部ではなく、AND または OR リストの一部でもなく、! 予約語が先頭についたパイプラインでもない場合に、ERR トラップが設定されていればそれを実行して終了します。 このモードは、プロファイル読み込み時には使用不能になります。

    -f

    ファイル名生成を使用不能にします。

    -h

    名前が identifier である各コマンドを、最初に出現したときにトラックされる別名に指定します。

    -k

    すべてのパラメータ割り当て引き数 (単にコマンド名の前にあるものだけではなく) を、 そのコマンドの環境に入れます。

    -m

    バックグラウンドジョブを個別のプロセスグループで実行し、 完了時に行をプリントします。 バックグラウンドジョブの終了ステータスは、 終了メッセージでレポートされます。 このオプションは、対話型シェルで自動的にオンにされます。

    -n

    コマンドを読み込み、それらに構文エラーがないかどうかチェックしますが、 実行はしません。-n オプションは対話型シェルでは無視されます。

    -o

    option 引き数を次のリストから設定します。-o オプションを繰り返すことによって、追加の option 引き数を指定できます。

    allexport

    -a と同じです。

    bgnice

    バックグラウンドジョブをすべて下位の優先順位で実行します。

    emacs

    コマンド入力用に emacs スタイルのインラインエディターを使用します。

    errexit

    -e と同じです。

    gmacs

    コマンド入力用に gmacs スタイルのインラインエディターを使用します。

    ignoreeof

    シェルをファイル終わり ( stty で定義されている eof 、デフォルトは ^D) で終了しません。exit 特殊コマンドを使用しなければなりません。

    keyword

    -k と同じです。

    markdirs

    ファイル名生成で生成されるすべてのディレクトリ名に後続の / を追加します。

    monitor

    -m と同じです。

    noclobber

    -C と同じです。

    noexec

    -n と同じです。

    noglob

    -f と同じです。

    nolog

    ヒストリファイルに関数定義を保存しません。

    notify

    -b と同じです。

    nounset

    -u と同じです。

    privileged

    -p と同じです。

    trackall

    -h と同じです。

    verbose

    -v と同じです。vi コマンド入力用に vi スタイルのインラインエディターを使用します。

    viraw

    vi モードでタイプするごとに各文字を処理します。 (常にオン)

    xtrace

    -x と同じです。

    -p

    $HOME/.profile ファイルの処理を使用不能にし、ENV ファイルではなくファイル /etc/suid_profile を使用します。 このモードは、 有効ユーザー ID(グループ ID) が 実ユーザー ID(グループ ID) と等しくないときはつねにオンです。 これをオフにすると、 実ユーザー ID およびグループ ID が 有効ユーザー ID およびグループ ID に設定されます。

    -s

    位置パラメータを並び換えます。

    -t

    1つのコマンドを読み込んで実行した後で終了します。

    -u

    アンセットパラメータを置換え時のエラーとして処理します。

    -v

    シェル入力行を読み込むごとにプリントします。

    -x

    コマンドが実行されるごとにコマンドおよび引き数をプリントします。

    -

    -x および -v オプションをオフにし、そのオプションの引き数の検査を停止します。

    --

    オプションを変更しません。パラメータ 1- で始まる値に設定する際に有用です。 このオプションの後に引き数がなければ、位置パラメータは設定されません。

% shift [n]

  • 位置パラメータを、 n+1 ... から 1 ... に名称変更します。n のデフォルトの値は 1 です。n は、評価値が $# より小さいか等しい負でない数値になる、任意の算術式とすることができます。

test [expr]

  • 条件式 expr を評価します。使用法と説明については、test(1) を参照してください。 また、『条件式』の項も参照してください。

  • 算術比較演算子は整数に制限されません。 任意の算術式を使用できます。以下の追加基本式を使用できます。

    -L file

    file がシンボリックリンクならば真

    -e file

    file が存在する場合は真

    file1 -nt file2

    file1file2 より新しければ真

    file1 -ot file2

    file1file2 より古ければ真

    file1 -ef file2

    file1 のデバイスおよび i ノード番号が file2 と同じである場合は真

% times

  • シェルおよびそのシェルからのプロセス実行に 対して累積したユーザーおよびシステム時間を プリントします。

% trap [arg] [sig]...

  • arg を、シェルが sig シグナルを受信した場合に読みとって実行するコマンドとして設定します (arg は、トラップが設定されたときに一度、 トラップがとられたときに一度スキャンされることに注意してください)。 それぞれの sig は、シグナルの番号または名前として指定ことができます。 大文字か小文字かは無視されます。たとえば、3QUITquit 、および SIGQUIT はすべて同じシグナルを指定します。シグナルのリストを得るには、kill -l を使用してください。

  • トラップコマンドは、シグナル番号順に実行されます。 現在のシェルに入る際に無視されたシグナルにトラップを 設定しようとしても効果はありません。 トラップは、別の trap コマンドによって明示的に変更されるまで、 指定されたシェルに対してその効果が持続します。 つまり、関数内で設定されたトラップは、 その関数が戻った後でも効果が持続します。

  • arg- の場合 (または arg を省略して最初の sig が数字の場合)、各 sig についてすべてのトラップを元の値にリセットします。

  • arg がヌル文字列 ('' または "" ) ならば、各 sig はシェルとそれが呼び出すコマンドによって無視されます。

  • sigDEBUG ならば、arg は各コマンドの後で実行されます。sigERR ならば、コマンドにゼロでない終了コードがあるときはつねに arg が実行されます。sig0 であるか、または EXIT の場合、コマンド arg はシェル終了時に実行されます。

  • 引き数を指定しないと、 各シグナル名に対応づけられたコマンドのリストをプリントします。

    & typeset [{-|+}LRZfilrtux[n]] [name[=value]]... name=value  [name=value]...

  • ローカルで指定されたパラメータ name にタイプと値を割り当てます。export 特殊コマンドも参照してください。 パラメータの割り当ては、コマンド完了後も有効です。 関数内で呼び出されると、パラメータ name の新しいインスタンスを作成します。 パラメータの値およびタイプは、関数が終わると格納されます。

  • 以下の属性リストを指定できます。オプションをオフにするには、- の代わりに + を使用してください。

    -L

    value を左揃えにし、前にある空白を削除します。n がゼロ以外なら、それはフィールドの幅を定義します。 ゼロならば、最初の割り当ての値の幅によって決定されます。name が割り当てられると、値は必要に応じて右側を空白で充てんされるか、 またはフィールドに収まるように切り捨てられます。-Z オプションも設定すると、先行するゼロは削除されます。-R オプションはオフにされます。 leftjust n のフラグが付きます。

    -R

    右揃えにし、前に空白を充てんします。n がゼロ以外なら、それはフィールドの幅を定義します。 ゼロならば、最初の割り当ての値の幅によって決定されます。 パラメータが再割り当てされると、 フィールドは空白で左側を充てんされるか、 または終端から切り捨てられます。-L オプションはオフにされます。 rightjust n のフラグが付きます。

    -Z

    最初の非空白文字が数字で、-L オプションが設定されていない場合は右揃えにし、前にゼロを充てんします。n がゼロ以外なら、それはフィールドの幅を定義します。 ゼロならば、最初の割り当ての値の幅によって決定されます。 zerofill n および -L または -R のフラグのフラグが付きます。

    -f

    これにより、name は、パラメータ名ではなく関数名を参照します。typeset 文で宣言された name に割り当てを行うことはできません。その他の唯一の有効なオプションは -t (この関数の実行トレースをオンにします) および -x (これにより、 関数は同じプロセス環境で実行されるシェルプロシージャに 渡って有効なままとすることが できます) です。function のフラグが付きます。

    -i

    パラメータは整数です。これにより、演算が高速になります。n がゼロでなければ、出力の基数を定義します。 ゼロならば、最初の割り当てで出力基数が決まります。integer [base n] のフラグが付きます。

    -l

    大文字をすべて小文字に変換します。大文字 -u オプションはオフにされます。lowercase のフラグが付きます。

    -r

    指定する name に「読み取り専用」のマークを付けます。 その名前は、その後の割り当てによって変更できなくなります。readonly のフラグが付きます。

    -t

    指定したパラメータにタグを付けます。 タグはユーザー定義可能で、シェルにとっての特殊な意味はありません。tagged のフラグが付きます。

    -u

    小文字をすべて大文字に変換します。小文字 -l オプションはオフにされます。uppercase のフラグが付きます。

    -x

    指定する name に、 それ以降実行されるコマンドの環境に自動的にエクスポートされるマークを 付けます。export のフラグが付きます。

  • typeset のみを指定すると、 パラメータ名の前に上記のフラグがついたリストが表示されます。

  • typeset - を指定すると、パラメータの後にその値がついて表示されます。 リストを制限するには、1つ以上のオプション文字を指定してください。 オプションによっては、同時に指定できないものもあります。

  • typeset + を指定すると、パラメータ名だけが表示されます。 リストを制限するには、1つ以上のオプション文字を指定してください。 オプションによっては、同時に指定できないものもあります。

ulimit [-HSacdfnst] [limit]

  • リソースの制限を設定または表示します。limit を使用すると、指定するリソースに制限を設定することができます。limit の値には、各リソースに指定されている単位で表した数値、またはキーワード unlimited を指定することができます。

  • -H および -S フラグは、 リソースに物理制限を設定するか論理制限を設定するかを指定するものです。 物理制限は、一度設定すると後から大きくすることはできません。 論理制限は、最大で物理制限まで大きくすることができます。-H-S も指定しないと、その値が両方の制限に適用されます。limit を省略すると、現在のリソースの制限がプリントされます。その場合、-H を指定しない限り論理制限がプリントされます。 複数のリソースを指定すると、値の前に制限の名前と単位がプリントされます。

  • オプションを指定しないと、-f とみなされます。

    -a

    現在のすべてのリソースの制限をリストします。

    -c

    コアダンプのサイズの 512バイトブロック数。

    -d

    データ領域のサイズのキロバイト数。

    -f

    子プロセスによって書き込まれたファイルの 512バイトブロック数 (どのサイズのファイルも読み取ることができます)。

    -n

    ファイル記述子の数。

    -s

    スタック領域のサイズのキロバイト数。

    -t

    各プロセスで使用される秒数。

umask [-S] [mask]

  • ユーザーファイル作成マスクを mask に設定します。mask は、8 進数とするか、または umask(1) に説明のあるシンボリック値とすることができます。 シンボリック値は、アンマスクされるパーミッションを示します。8 進数はマスクをかけられるパーミッションを示します。

  • mask を省略すると、マスクの現在の値をプリントします。-S を指定すると、値をシンボリックフォーマットでプリントします。-S を指定しないと、値を 8 進数でプリントします。 どちらのフォーマットからの出力も umask のその後の呼び出しの mask として使用できます。

unalias name ...
unalias -a

  • name を、別名リストから削除します。-a を指定すると、すべての alias 定義を現在のシェル実行環境から削除します。alias 特殊コマンドも参照してください。

% unset [-fvname ...

  • 指定したシェルパラメータをパラメータリストから削除します。 それらの値と属性が消去されます。 読み取り専用の変数は設定解除できません。-f を指定すると、name は関数名を参照します。-v を指定すると、name は変数名を参照します。_ERRNOLINENOMAILCHECKOPTARGOPTINDRANDOMSECONDS 、および TMOUT を設定解除すると、後で割り当てても、特殊な意味が削除されます。

wait [job]

  • 指定した job が終了または停止するまで待ち、そのステータスをレポートします。 このステータスは wait コマンドの戻りコードになります。job を指定しないと、 現在アクティブなすべての子プロセスが終了または停止するまで待ちます。 戻される終了ステータスは、最後のプロセスの終了ステータスです。job のフォーマットの説明については、『ジョブ』 の項を参照してください。

whence [-pvname ...

  • それぞれの name ごとに、 コマンド名として使用されたときにどのように解釈されるかを示します。-v を指定すると、より詳細なレポートを生成します。-p を指定すると、別名、関数、または予約語のいずれが使用されても name のパス検索を行います。

コメント

# で始まる word により、そのワードとその後の改行までのすべての文字は無視されます。

別名指定

各コマンドの最初のワードは、このワードの 別名 が定義されていれば、別名 のテキストで置き換えられます。別名 の名前は、メタキャラクタ、引用文字、 ファイル拡張文字、パラメータおよびコマンド置換え文字、 および = を除いた任意個数の文字で構成されます。 置換え文字列には、上記のリストに示したメタキャラクタを含めて、 任意の有効なシェルスクリプトを入れることができます。 置き換えられたテキストにおける各コマンドの最初のワードは、 置き換え途中のプロセスにおけるもの以外は、 追加別名についてテストされます。 別名値の最後の文字が blank ならば、別名の後のワードも別名置換えについてチェックされます。 別名は、特殊コマンドの再定義に使用できますが、『複合コマンド』 の項にリストに示したキーワードの再定義には使用できません。別名は alias コマンドで作成、リスト、エクスポートができ、unalias コマンドで削除できます。 エクスポートされた別名は、サブシェルでは有効なままですが、 シェルの個別の呼び出しごとに再初期化しなければなりません (『シェルの呼び出し』 の項を参照)。

別名定義は、実行時にではなくスクリプトが読み込まれたときに実行されます。 したがって有効にするためには、別名を参照するコマンドが読み込まれる前に alias が実行されなければなりません。

別名は絶対パス名の短縮操作として頻繁に使用されます。 別名機能に対するオプションにより、 別名の値を対応するコマンドの絶対パス名に自動的に設定できます。 これらの別名を トラックされた 別名と呼びます。 トラックされた別名の値は、識別子の初回読み込み時に定義され、PATH 変数がリセットされるたびに、定義設定解除されます。これらの別名は、次の参照でその値が再定義されるようにトラックされた ままです。いくつかのトラックされた別名は、シェルにコンパイルされています。set コマンドの -h オプションは、identifier である各コマンド名をトラックされた別名に変換します。

以下の エクスポートされた別名 がシェルにコンパイルされていますが、設定解除または再定義できます。

autoload='typeset -fu'
command='command '
functions='typeset -f'
history='fc -l'
integer='typeset -i'
local=typeset
nohup='nohup '
r='fc -e -'
stop='kill -STOP'
suspend='kill -STOP $$'
type='whence -v'

ティルドの置換え

別名の置換えが行われた後、各ワードは引用されていないティルド (~) で始まるかどうかチェックされます。この場合、/ までのワードがチェックされ、/etc/passwd ファイルのユーザー名に一致するかどうか調べられます。一致が見つかると、~ および一致したログイン名が 一致したユーザーのログインディレクトリに置き換えられます。 これをティルド置換えといいます。 一致するものがなければ、元のテキストがそのまま変化しません。単独、または / の前にある ~ は、HOME パラメータの値で置き換えられます。~ とその後の + または - は、それぞれパラメータ PWD および OLDPWD の値で置き換えられます。 さらに、ティルドの置換えは、パラメータ割り当ての値が ~ から始まる場合に試みられます。

コマンドの置換え

ドル記号 ($(...)) または一対の抑音符号 (`...`) が前に付いている小かっこで囲まれたコマンドからの標準出力を、 ワードの一部または全部として使用できます。 後続の改行は削除されます。 第 2 (旧式の) 形式では、 抑音符号の間の文字列はコマンドの実行前に、 特殊引用文字に対して処理されます。『引用』 の項を参照してください。コマンド置換え $(cat file) は、等価で高速な $(<file) に置き換えることができます。 入出力のリダイレクトを行わない大部分の特殊コマンドのコマンド置換えは、 別のプロセスを作成することなく実行されます。

ドル記号 ($((...))) が前に付いて、二重のかっこで囲まれた算術式は、 二重かっこ内の算術式の値に置き換えられます。 算術式の説明については、『算術評価』 の項を参照してください。

パラメータの置換え

パラメータ は、識別子、1つ以上の数字、または !#$*-?@_ の文字のいずれか1つです。名前付きパラメータ (識別子によって表されたパラメータ) には、1つの値およびゼロ個以上の属性があります。 名前付きのパラメータには、typeset 特殊コマンドで値および属性を割り当てることができます。 エクスポートされたパラメータは、値および属性を環境に渡します。

シェルは、限定された 1次元の配列機能をサポートします。 配列パラメータの要素は、添え字によって参照されます。添え字は、[ とその後の算術式、およびその後の ] によって表されます。『算術評価』 の項を参照してください。配列に値を代入するには、 set -A name value ... を使用します。0 から 1023 までの範囲でなければなりません。 配列を宣言する必要はありません。 有効な添え字がある名前付きパラメータへの参照はすべて正当であり、 必要ならば配列が作成されます。 添え字なしで配列を参照することは、最初の要素を参照することと等価です。

-i 整数属性が name に設定されると、value は以下に説明される算術評価を受けます。

位置パラメータ、数値によって表されたパラメータは、set 特殊コマンドで代入された値とすることができます。パラメータ 0 は、シェルの呼び出し時に引き数ゼロから設定されます。

置換え用のパラメータの値を指定するには、接頭文字として $ を使用します。

$parameter

${parameter}

${parameter[subscript]}

もしあれば、パラメータの値を置き換えます。中かっこは、parameter の後に、名前の一部として解釈してはならない英字、 数字、またはアンダースコアがくるか、 または名前付きパラメータに添え字が付けられている場合に必要です。parameter が1つまたは複数の数字ならば、それは位置パラメータです。 複数の数字の位置パラメータは中かっこで囲まなければなりません。 シェルは、${ から対応する } までのすべての文字を、それに中かっこまたはメタキャラクタが入っていても、 同じワードの一部として読み取ります。

parameter* または @ ならば、1 から始まるすべての位置パラメータが置き換えられます (フィールドセパレータ文字で区切られます)。『引用』 の項を参照してください。

添え字 * または @ をもつ配列パラメータを使用すると、 それぞれの要素ごとの値が置き換えられます (フィールドセパレータ文字で区切られます)。

${#parameter}

parameter* または @ ならば、その数の位置パラメータが置き換えられます。 そうでなければ、その長さの parameter の値が置き換えられます。

${#parameter[*]}

配列のその数の要素を置き換えます。

${parameter:-word}

parameter が設定され、ヌルでなければ、その値を置き換えます。そうでなければ word を置き換えます。

${parameter:=word}

parameter が設定されていないかまたはヌルならば、word に設定し、次にパラメータの値を置き換えます。 位置パラメータはこのように割り当てることはできません。

${parameter:?word}

If parameter が設定され、ヌルでなければ、その値を置き換えます。そうでなければ、word をプリントしてシェルを終了します。word を省略すると、標準メッセージがプリントされます。

${parameter:+word}

parameter が設定され、ヌルでなければ、word を置き換えます。そうでなければ、何も置き換えません。

${parameter#pattern}

${parameter##pattern}

シェル patternparameter の値の先頭に一致すると、この置換えの値は一致する部分が削除された parameter の値です。そうでなければこの parameter の値が置き換えられます。 前者の場合では、最も小さい一致パターンが削除されます。 後者の場合では、最も大きい一致パターンが削除されます。# または % の各文字は、 バックスラッシュ (\) または引用符 ('') によってエスケープしてください。

${parameter%pattern}

${parameter%%pattern}

シェル patternparameter の値の終端に一致すると、一致する部分が削除されて parameter の値が削除されます。そうでなければ、parameter の値を置き換えます。 前者では、最も小さい一致パターンが削除されます。 後者では、最も大きい一致パターンが削除されます。# または % の各文字は、 バックスラッシュ (\) または引用符 ('') によってエスケープしてください。

上記では、word は、置き換えられた文字列として使用されない限り、評価されません。 したがって、以下の例では、pwdd が設定されていないか、またはヌルである場合に限って実行されます。

echo  ${d:-$(pwd)}

上記の式からコロン (:) を省略すると、シェルは parameter が設定されているかどうかを判別するためにチェックだけします。

• 以下のパラメータがシェルによって自動的に設定されます。

0

コマンドまたはスクリプトの呼び出しに使用する文字列で、 呼び出し引き数ゼロから設定される。

1 2 ...

位置パラメータ。

* @

設定されているすべての位置パラメータで、 フィールドセパレータ文字で区切られる。『引用』 の項を参照。

#

10 進数の設定された位置パラメータ数。

-

呼び出し時または set コマンドの実行によって、シェルに与えられたフラグ。

?

最後に実行されたコマンドによって戻された 10 進の終了ステータス。

$

このシェルのプロセス番号。

_

初期値は、環境で渡される、実行中のシェルまたはスクリプトの絶対パス名。 その後は、前のコマンドの最後の引き数を割り当てられます。 このパラメータは、非同期であるコマンドに対しては設定されません。 また、このパラメータは、メールがあるかどうかチェックする際に、一致する MAIL ファイルの名前を保持するのに使用されます。

!

呼び出された最後のバックグラウンドコマンドのプロセス番号。

ERRNO

最後に異常終了したシステムコールによって設定された errno の値。この値はシステム依存で、デバッグを目的としたものです。

LINENO

実行対象のスクリプトまたは関数内の現在の行の行番号。

OLDPWD

cd コマンドによって設定された以前の作業ディレクトリ。

OPTARG

getopts 特殊コマンドによって処理された最後のオプション引き数の値。

OPTERR

0 に設定されると、OPTERRgetopts 特殊コマンドからのエラーメッセージを抑止します。OPTERR は初めに 1 に設定されます。

OPTIND

getopts 特殊コマンドによって処理された最後のオプション引き数のインデックス。

PPID

シェルの親のプロセス番号。

PWD

cd コマンドによって設定された現在の作業ディレクトリ。

RANDOM

このパラメータが評価されるたびに、0 から 32767 までの間で一様に分布する整数の乱数が生成されます。 乱数のシーケンスは、数値を RANDOM に代入することによって初期化できます。

REPLY

select 複合コマンドによって、また name を指定しない場合は read 特殊コマンドによって、設定されます。

SECONDS

このパラメータが参照されるたびに、シェル呼び出しからの秒数が戻されます。 このパラメータに値が代入されると、 参照で戻される値は、代入された値に代入からの秒数を加えた値です。

• 以下のパラメータがシェルによって使用されます。

CDPATH

cd コマンドの検索パスで、コロンで区切られたディレクトリのリスト。

COLUMNS

この変数が設定されると、その値はシェルエディットモードおよび select リストのプリント用のエディットウィンドウの幅を定義するのに使用されます。

EDITOR

この変数の値が emacsgmacs、または vi で終了し、VISUAL 変数が設定されていないと、対応するオプションがオンになります (set 特殊コマンドを参照)。

ENV

このパラメータが設定されると、パラメータの置換えがその値に対して行われ、 シェル呼び出し時に実行されるスクリプトのパス名が生成されます (『シェルの呼び出し』 の項を参照)。 このファイルは通常、alias および function 定義で使用されます。

FCEDIT

fc コマンドのデフォルトエディター名。

FPATH

関数定義の検索パス、コロンで区切られたディレクトリのリスト。 このパスは、-u 属性がある関数が参照された場合、 およびコマンドが見つからない場合に検索されます。 実行可能ファイルが見つかると、それが読み込まれ、 現在の環境で実行されます。

HISTFILE

このパラメータがシェル呼び出し時に設定されていると、 その値はコマンドヒストリの格納に使用されるファイルのパス名です。 デフォルト値は $HOME/.sh_history です。 ユーザーがスーパーユーザーであり、HISTFILE を指定しなければ、ヒストリファイルは使用されません。『コマンドリエントリー』 の項および 『警告』 の項を参照してください。

HISTSIZE

このパラメータがシェル呼び出し時に設定されていると、 このシェルにアクセス可能な以前に入力されたコマンドの数は、 この数値より大きいか、または等しくなります。 デフォルトは 128 です。

HOME

cd コマンドのデフォルト引き数 (ホームディレクトリ)。cd

IFS

内部フィールドセパレータ、通常はスペース、 タブ、および改行で、 コマンドまたはパラメータの置換えにより発生するコマンドワードを 区切る際、 および特殊コマンド read でワードを区切るために使用されます。IFS パラメータの最初の文字は $* 置換えで引き数を区切るために使用されます (『引用』 の項を参照)。IFS の値がスペース、タブ、および改行であるか、または IFS が未設定で、コマンドまたはパラメータの置換えの結果を 区切るために使用されると、IFS 文字のシーケンスはすべてワードを区切るために使用されます。 そうでなければ、IFS における文字の各出現箇所がワードを区切るのに使用されます。IFS の値がヌルならば、ワード分割は行われません。

LANG

言語、地域、コードセットの 3つの部分からなる、システムのロケール。 デフォルトは C ロケールです。environ(5) を参照。

LC_ALL

LANG および LC_* 変数のオーバーライド値。environ(5) を参照。

LC_COLLATE

名前をソートする場合 およびパターン内で文字範囲が発生する場合の照合順序。environ(5) を参照。

LC_CTYPE

使用する文字分類情報。シェルの起動後に LC_CTYPE の値を変更しても、 現在のシェル実行環境またはそのサブシェルでのシェルコマンドの照合処理に は影響はありません。environ(5) を参照。

emacsgmacs、または vi 編集モードが選択されている場合、シェルは LC_CTYPE を使用して入力に含まれている印字不可能な文字を検出し、 処理しようと試みます。LC_CTYPE を設定した後に新しいシェルセッションを開始しない場合は、emacsgmacs、または vi 編集モードにおける印字不可能な入力文字の表示に影響します。

LC_MESSAGES

システムメッセージに使用される言語、およびシステムがユーザーの yes および no 文字列入力に使用されるとみなす言語。environ(5)