- : [arguments]
- 何もしません。このコマンドは arguments を展開し、指定されたリダイレクトを実行する以外には何も行いません。 終了コード 0 を返します。
. filename [arguments]
- source filename [arguments]
- filename からコマンドを読み込み、現在のシェル環境の下で実行します。 filename 内の最後に実行したコマンドの終了ステータスを返します。 filename にスラッシュが含まれていない場合、 filename は PATH に含まれるディレクトリから探されます。 PATH 内で検索されるファイルは、実行可能である必要はありません。 bash が posix モード 以外で動作しているときは、 PATH 中でファイルを見つけられなかった場合に、 カレントディレクトリが検索されます。 組み込みコマンド shopt に対する sourcepath オプションが無効にされている場合、 PATH の検索は行われません。 何らかの arguments が指定された場合、これらの引き数は filename を実行したときの位置パラメータとなります。 指定されなかった場合は、位置パラメータは変更されません。 返却ステータスはスクリプト内で最後に実行したコマンドのステータスです (コマンドが全く実行されなければ 0 です)。 filename が見つからない場合や読み込めない場合には偽となります。
- alias [-p] [name[=value] ...]
- alias コマンドを引き数を付けずに (あるいは -p オプションを付けて) 実行すると、エイリアスのリストが 「alias name=value」の形で標準出力に出力されます。 引き数を与えた場合には、value を与えられた name それぞれに対するエイリアスが定義されます。 value の末尾に空白があると、エイリアスが展開されたときに、 空白の次の単語についてエイリアス置換があるかどうか調べられます。 引き数リスト中に value が与えられていない name があった場合は、 それぞれに対して名前とエイリアスの値が出力されます。 エイリアスが定義されていない name が指定された場合以外は、 alias は真を返します。
- bg [jobspec ...]
- サスペンドされているジョブ jobspec を バックグラウンドで実行再開します。このジョブは、初めから & を付けて起動されていたかのように動作を続けます。 jobspec がない場合には、 シェルが記録しているカレントジョブ (current job) が使われます。 bg jobspec は通常 0 を返しますが、ジョブ制御が無効であるときに実行した場合や、 ジョブ制御が有効であっても jobspec が有効なジョブを指定していない場合や jobspec がジョブ制御なしで開始したジョブを指定している場合は異なる値を返します。
- bind [-m keymap] [-lpsvPSV]
- bind [-m keymap] [-q function] [-u function] [-r keyseq]
- bind [-m keymap] -f filename
- bind [-m keymap] -x keyseq:shell-command
- bind [-m keymap] keyseq:function-name
- bind readline-command
-
readline の現在のキー割り当てと関数割り当てを表示したり、 キーシーケンスを readline の関数やマクロに割り当てたり、 readline の変数を設定したりします。 オプション以外の引き数はすべて、 .inputrc , に書くのと同じ形式のコマンドですが、 それぞれの割り当てやコマンドは独立した引き数として渡さなければなりません。 例えば '"\C-x\C-r": re-read-init-file' のように指定します。 オプションを指定した場合には、以下のような意味を持ちます:
-
- -m keymap
- キーマップ keymap を、以降の割り当てによって変更します。 指定できる keymap 名は、 emacs, emacs-standard, emacs-meta, emacs-ctlx, vi, vi-move, vi-command, vi-insert です。 vi は vi-command と同じです。 また emacs は emacs-standard と同じです。
- -l
- readline 関数の名前を全てリスト表示します。
- -p
- readline の関数の名前と割り当てを表示します。 表示は、再び読み込みできる形式で出力されます。
- -P
- readline の関数の現在の名前と割り当てをリスト表示します。
- -s
- マクロに割り当てられた readline のキーシーケンスと、 マクロが出力する文字列を表示します。 表示は、再び読み込みできる形式で出力されます。
- -S
- マクロに割り当てられた readline のキーシーケンスと、 マクロが出力する文字列を表示します。
- -v
- readline の変数名と値を表示します。 表示は、再び読み込みできる形式で出力されます。
- -V
- readline の現在の変数名と値をリスト表示します。
- -f filename
- キー割り当てを filename から読み込みます。
- -q function
- 指定された function を呼び出すキーを問い合わせます。
- -u function
- 指定された function に割り当てられているキーの割り当てを 全て取り消します。
- -r keyseq
- keyseq に対する現在の割り当てを削除します。
- -x keyseq:shell-command
- keyseq が押されるたびに、 shell-command が実行されるようにします。 shell-command を実行するとき、シェルは変数 READLINE_LINE に readline の編集バッファの内容を設定し、変数 READLINE_POINT に現在の挿入ポイントの位置を設定します。 実行したコマンドが READLINE_LINE や READLINE_POINT の値を変更した場合、新しい値が編集の状態に反映されます。
認識できないオプションが与えられた場合やエラーが起きた場合以外は、 返り値は 0 になります。
- break [n]
- for, while, until, select のループから抜けます。n が指定されていれば、n レベル分 のループを break します。 n は 1 以上でなければなりません。 n がループの深さよりも大きい場合には、全てのループから抜けます。 n が 1 未満の場合を除けば、返り値は 0 です。
- builtin shell-builtin [arguments]
- 指定されたシェル組み込みコマンドを実行します。コマンドには arguments を引き数として渡し、このコマンドの終了ステータスを返します。 これはシェル組み込みコマンドと同じ名前の関数を定義するときに便利で、 その関数内で組み込みコマンドの機能を使うことができます。 組み込みコマンド cd は普通、これを使って再定義されます。 shell-builtin がシェル組み込みコマンドでなければ、終了ステータスは偽となります。
- caller [expr]
- 実行中のサブルーチン (シェル関数や、組み込みコマンド . か source で呼び出したスクリプト) 呼び出しのコンテキストを返します。 expr が指定されていなければ、caller は 現在のサブルーチン呼び出しの行番号とソースファイル名を表示します expr に負でない整数が与えられた場合、caller は、 現在の呼び出しスタック中で指定した位置の行番号、サブルーチン名、 ソースファイルを表示します。 スタックトレースを表示する場合などに、範囲外の情報が使われるかもしれません。 現在のフレームはフレーム 0 です。 シェルがサブルーチンを呼び出していない場合や、 expr が呼び出しスタックの有効な位置に相当しない場合を除けば、 返り値は 0 です。
- cd [-L|[-P [-e]]] [dir]
- カレントディレクトリを dir に変更します。 変数 HOME の値が dir のデフォルト値です。変数 CDPATH は、 dir を含むディレクトリの検索パスを定義します。 CDPATH 内では候補ディレクトリ名はコロン (:) で区切ります。 CDPATH 中に空のディレクトリ名がある場合、これはカレントディレクトリ (つまり ``.'') を意味します。 dir がスラッシュ (/) で始まる場合には、 CDPATH は使われません。 -P オプションは、シンボリックリンクを辿らないで物理的なディレクトリ構造を 使うように指示します (組み込みコマンド set の -P オプションも参照)。 -L オプションを指定すると、シンボリックリンクを辿るようになります。 -e オプションを -P オプションと同時に指定すると、ディレクトリの変更が成功した後に カレントディレクトリが判定できない場合、cd は失敗のステータスを返します。 引き数に - を指定するのは、 $OLDPWD を指定するのと同じ意味です。 CDPATH 内の空以外のディレクトリ名が使われたときや、 - が最初の引き数のときに、ディレクトリの変更が成功すると、 新しいディレクトリの絶対パス名が標準出力に書かれます。 ディレクトリの変更が成功した場合には返り値は真になり、 そうでない場合には偽になります。
- command [-pVv] command [arg ...]
- command に引き数 args を付けて実行します。ただし、シェル関数の通常の参照は行いません。 組み込みコマンドと PATH 内で見つかるコマンドだけが実行されます。 -p オプションが与えられると、 command の検索を行う際に PATH のデフォルト値が使われます。これにより、 全ての標準ユーティリティを確実に見つけられます。 -V オプションまたは -v オプションを与えると、 command の説明が出力されます。 -v オプションでは、 command を起動するときに使われるコマンドやファイル名を示す単語が表示されます。 -V ではさらに詳しい説明が表示されます。 -V オプションや -v オプションを与えた場合、終了ステータスは command が見つかれば 0 となり、見つからなければ 1 となります。 どちらのオプションも与えなかった場合に、エラーが起きたり、 command を見つけられなかったりすると、終了ステータスは 127 になります。 それ以外の場合には、組み込みコマンド command の終了ステータスは、 command の終了ステータスです。
- compgen [option] [word]
-
option に従って、word にマッチする補完候補のリストを生成します。 オプションには complete 組み込みコマンドと同じものが指定できますが、 -p と -r は指定できません。 マッチのリストは標準出力に出力されます。 -F や -C オプションを使用したときは、 プログラム補完機能によって設定された様々なシェル変数は、 利用可能であっても有用な値を持ちません。
マッチのリストは、同じフラグによる補完仕様で プログラム補完のコードが直接生成したかのように 生成されます。 word が指定されると、word にマッチする補完だけが表示されます。
戻り値は、 無効なオプションが指定された場合やマッチが生成されなかった場合以外は 真になります。
- complete [-abcdefgjksuv] [-o comp-option] [-DE] [-A action] [-G globpat] [-W wordlist] [-F function] [-C command]
[-X filterpat] [-P prefix] [-S suffix] name [name ...]
- complete -pr [-DE] [name ...]
-
各 name の引き数を、どのように補完するのかを指定します。 -p オプションが指定された場合や、 何もオプションが指定されなかった場合は、 現在の補完仕様が (入力として再利用できる形で) 出力されます。 -r オプションは、それぞれの name の補完指定を削除します。 name が指定されなかった場合は全ての補完指定を削除します。 -D オプションは、残りのオプションと動作を ``デフォルトの'' コマンド補完 (補完が定義されていないコマンドに対して 試みられる補完) に適用することを示します。 -E オプションは、残りのオプションと動作を ``空の'' コマンド補完 (空行に対して試みられる補完) に適用することを示します。
単語補完が試みられたときに、補完指定が適用される流れは、 前述の プログラム補完 で説明されています。
他のオプションは、指定された場合、以下のような意味を持ちます。 -G, -W, -X オプションの引き数 (必要ならば -P と -S オプションの場合も) はクォートして、 組み込みコマンド complete が呼び出される前に展開されないようにすべきです。
-
- -o comp-option
-
comp-option は補完仕様の動作をいくつかの観点から制御し、 単純な補完生成以外ができるようにします。 comp-option には以下のどれかひとつを指定できます。
-
- bashdefault
- 補完仕様がマッチを全く生成しなかった場合に、 bash のデフォルトの補完を用います。
- default
- 補完仕様がマッチを全く生成しなかった場合に、 readline のデフォルトの補完を用います。
- dirnames
- 補完仕様がマッチを全く生成しなかった場合に、 ディレクトリ名を補完しようとします。
- filenames
- 補完仕様がファイル名を生成することを readline に伝え、 readline がファイル名特有の処理 (ディレクトリ名にスラッシュを加えたり、特殊文字をクォートしたり、 末尾の空白を削除したり、など) を行えるようにします。 シェル関数と共に用いることを想定しています。
- nospace
- 行末で単語を補完したときに空白を付け加える動作 (デフォルトの動作) を やめるように readline に伝えます。
- plusdirs
- 補完仕様で定義されたマッチした候補が生成された後に、 ディレクトリ名の補完を試み、ほかの動作の結果にマッチした候補が 全て追加されます。
- -A action
-
action は補完候補リストの生成動作で、 以下のどれかひとつを指定します。
-
- alias
- エイリアス名。-a でも指定できます。
- arrayvar
- 配列変数名。
- binding
- readline キー割り当て名。
- builtin
- シェル組み込みコマンド名。-b でも指定できます。
- command
- コマンド名。-c でも指定できます。
- directory
- ディレクトリ名。-d でも指定できます。
- disabled
- 無効にされているシェル組み込みコマンドの名前。
- enabled
- 有効にされているシェル組み込みコマンドの名前。
- export
- エクスポートされたシェル変数の名前。 -e でも指定できます。
- file
- ファイル名。-f でも指定できます。
- function
- シェル関数の名前。
- group
- グループ名。-g でも指定できます。
- helptopic
- 組み込みコマンド help に指定できるヘルプのトピック名。
- hostname
- HOSTFILE シェル変数で指定されたファイルから得られたホスト名。
- job
- ジョブ名 (ジョブ制御が有効な場合)。-j でも指定できます。
- keyword
- シェルの予約語。-k でも指定できます。
- running
- ジョブ制御が有効であれば、実行中のジョブ名。
- service
- サービス名。-s でも指定できます。
- setopt
- 組み込みコマンド set の -o オプションで有効な引き数。
- shopt
- 組み込みコマンド shopt に指定できるシェルオプション名。
- signal
- シグナル名。
- stopped
- 停止しているジョブ名 (ジョブ制御が有効な場合)。
- user
- ユーザ名。-u でも指定できます。
- variable
- 全てのシェル変数名。-v でも指定できます。
- -C command
- command がサブシェル環境で実行され、 その出力が補完候補として使用されます。
- -F function
- シェル関数 function は現在のシェル環境で実行されます。 関数が終了したときに、補完候補が COMPREPLY 配列変数から取得されます。
- -G globpat
- パス名展開パターン globpat を展開し、 補完候補のリストを生成します。
- -P prefix
- ほかの全てのオプションが適用された後で、 それぞれの補完候補の先頭に prefix が付け加えられます。
- -S suffix
- ほかの全てのオプションが適用された後で、 それぞれの補完候補の後に suffix が付け加えられます。
- -W wordlist
- wordlist は IFS 特殊変数に含まれる文字を区切り文字として分割され、 分割された単語がそれぞれ展開されます。 展開結果のリストのメンバのうち、補完中の単語がマッチするものが、 補完候補となります。
- -X filterpat
- filterpat がパス名展開のパターンとして使用されます。 先行するオプション・引き数によって生成された補完候補のリストに適用され、 filterpat とマッチするそれぞれの補完候補がリストから削除されます。 filterpat が ! で始まる場合、パターンの否定の意味になります。 つまり、filterpat にマッチしない補完対象が削除されます。
不正なオプションが指定された場合、-p と -r 以外のオプションで name が指定されなかった場合、 存在しない name の指定によって補完が削除されようとした場合、 補完の指定の追加に失敗した場合、を除いては、返り値は真になります。
- compopt [-o option] [-DE] [+o option] [name]
-
name の補完オプションを option に従って変更します。 name が指定されない場合は、実行中の補完が対象になります。 options が与えられない場合は、name または現在の補完の 補完オプションを表示します。 option に指定できる値は、前述の組み込みコマンド complete で有効なものです。 -D オプションは、残りのオプションを ``デフォルトの'' コマンド補完 (補完が定義されていないコマンドに対して 試みられる補完) に適用することを示します。 -E オプションは、残りのオプションを ``空の'' コマンド補完 (空行に対して試みられる補完) に適用することを示します。
不正なオプションが指定された場合、 補完仕様が定義されていない name のオプションを変更しようとした場合、 出力エラーが起こった場合、を除いては、返り値は真になります。
- continue [n]
- for, while, until, select ループの次の繰り返し分から実行を継続します。 n を指定すると、深さを n 個分上がったループで実行を継続します。 n は 1 以上でなければなりません。 n がループの深さよりも大きい場合、 最後のループ (「トップレベル」のループ) で実行が継続されます。 n が 1 未満の場合を除けば、返り値は 0 です。
- declare [-aAfFgilrtux] [-p] [name[=value] ...]
- typeset [-aAfFgilrtux] [-p] [name[=value] ...]
-
変数を宣言したり、変数に属性を与えたりします。 name を指定しなければ、変数の値が表示されます。 -p オプションを指定すると、各 name の属性と値が表示されます。 -p に name 引き数を指定すると、他のオプションは無視されます。 -p オプションが name 引き数なしで指定されると、 他のオプションで指定された属性を持っている 全ての変数の属性と値を表示します。 -p 以外のオプションが指定されない場合、 declare は全てのシェル変数の属性と値を表示します。 -f オプションは表示をシェル関数に限定します。 -F オプションを指定すると、関数定義の表示を止めます。 関数の名前と属性だけが出力されます。 shopt によってシェルオプション extdebug が有効になっていれば、 関数が定義されているソースファイルの名前と行番号も表示されます。 -F オプションを指定すると、 -f オプションも指定したことになります。 -g オプションを指定すると、declare がシェル関数の中で実行されたときであっても、 グローバルスコープで変数の作成、変更を行います。 ほかの場合には無視されます。 以下のオプションを使うと、 指定した属性を持つ変数の出力を限定したり、 変数に属性を与えたりできます:
-
- -a
- 各 name は配列変数です (前述の 配列 を参照)。
- -A
- 各 name は連想配列変数です (前述の 配列 を参照)。
- -f
- 関数名だけを使います。
- -i
- 変数を整数として扱います。変数に値が代入されたときに算術式評価 ( 算術式評価 を参照) が実行されます。
- -l
- 変数に値が代入されると、全ての大文字は小文字に変換されます。 大文字属性は無効になります。
- -r
- name を読み込み専用にします。 これ以降、代入文を用いて値を代入したり unset したりできなくなります。
- -t
- 各 name に trace 属性を与えます。 trace 属性を付与された関数は DEBUG と RETURN のトラップを 呼び出したシェルから受け継ぎます trace 属性は変数には意味を持ちません。
- -u
- 変数に値が代入されると、全ての小文字は大文字に変換されます。 小文字属性は無効になります。
- -x
- name に印を付け、 これ以降に実行するコマンドに環境経由でエクスポートします。
`-' ではなく `+' を使うと属性を消します。 ただし例外として、+a を使って配列変数を破棄することはできず、 +r を使って読み込み専用属性を消すことはできません。 関数内で使った場合、 -g オプションが与えられなかった場合、 local コマンドを使った場合と同様に name はローカル変数となります。 変数名に =value が続く場合、 変数の値として value が設定されます。 返り値は基本的には 0 ですが、不正なオプションに出会った場合、 ``-f foo=bar'', を使って関数を定義しようとした場合、 読み込み専用の変数に代入しようとした場合、 複合代入構文を使わずに配列変数に値を代入しようとした場合 (前述の 配列 を参照)、name のいずれかが正しいシェル変数名でない場合、 読み込み専用変数の読み込み専用属性を無効にしようとした場合、 配列変数の配列属性を無効にしようとした場合、 存在しない関数を -f オプションで表示しようとした場合は除きます。
- dirs [+n] [-n] [-clpv]
-
オプションがないときは、 現在記憶しているディレクトリのリストが表示されます。 デフォルトでは、全てのディレクトリ名は空白で区切って 1 行で表示されます。 ディレクトリは pushd コマンドによってリストに追加されます。 popd コマンドはリストからエントリを削除します。
-
- +n
- オプションなしで dirs を起動したときに表示されるリストの、 左から数えて n 番目のエントリを表示します。 エントリは 0 から始まります。
- -n
- オプションなしで dirs を起動したときに表示されるリストの、 右から数えて n 番目のエントリを表示します。 エントリは 0 から始まります。
- -c
- 全てのエントリを削除し、ディレクトリスタックをクリアします。
- -l
- 長い形式のリスト表示を行います。 デフォルトのリスト表示フォーマットでは、 チルダを使ってホームディレクトリを表します。
- -p
- 1 行に 1 エントリの形でディレクトリスタックを出力します。
- -v
- 1 行に 1 エントリの形でディレクトリスタックを出力します。 各エントリの前にはスタック内での番号が表示されます。
不正なオプションが与えられた場合とインデックス n がディレクトリスタックの末尾を越えている場合を除き、 返り値は 0 となります。
- disown [-ar] [-h] [jobspec ...]
- オプションなしの場合には、それぞれの jobspec がアクティブなジョブのテーブルから削除されます。 jobspec がなく、かつ -a オプションも -r オプションも 与えられていない場合には、カレントジョブが使われます。 -h オプションが与えられている場合、どの jobspec もテーブルから削除されず、 シェルが SIGHUP を受け取ってもそのジョブには SIGHUP が送られないように印が付けられます。 jobspec が与えられていない場合、 -a オプションは全てのジョブを削除するか 全てのジョブに印を付けるという意味 となります。 jobspec 引き数なしで -r オプションを指定すると、 実行中のジョブだけが操作の対象となります。 jobspec が有効なジョブを指定していない場合を除き、返り値は 0 となります。
- echo [-neE] [arg ...]
-
arg を空白で区切って出力し、最後に改行を出力します。 終了ステータスは常に 0 です。 -n が指定された場合、最後の改行は出力されません。 -e オプションを指定した場合、 以下に示す、バックスラッシュのエスケープ文字が解釈されるようになります。 -E オプションを指定すると、 デフォルトでこのようなエスケープ文字が解釈されるシステムであっても、 エスケープ文字が解釈されないようになります。 xpg_echo シェルオプションを用いると、 echo がこれらのエスケープ文字を展開するかどうかの デフォルト動作を動的に決定できます。 echo は -- をオプションの終わりと解釈しません。 echo は以下のエスケープシーケンスを解釈します:
-
- \a
- 警告 (ベル)
- \b
- バックスペース
- \c
- 行末に改行を付けない
- \e
- \E
- エスケープ文字
- \f
- フォームフィード
- \n
- 改行
- \r
- 復帰 (carriage return)
- \t
- 水平タブ
- \v
- 垂直タブ
- \\
- バックスラッシュ
- \0nnn
- 8 進値で nnn である 8 ビット文字 (8 進数で 0〜3 桁)。
- \xHH
- 16 進値が HH である 8 ビット文字 (16 進で 1〜2 桁)。
- \uHHHH
- 16 進値が HHHH であるユニコード (ISO/IEC 10646) 文字 (16 進 1〜4 桁)。
- \UHHHHHHHH
- 16 進値が HHHHHHHH であるユニコード (ISO/IEC 10646) 文字 (16 進 1〜8 桁)。
- enable [-a] [-dnps] [-f filename] [name ...]
- 組み込みコマンドの有効/無効を設定します。 シェルは通常はディスクコマンドの前に組み込みコマンドを探しますが、 組み込みコマンドを無効にすると、 シェルの組み込みコマンドと同じ名前を持つディスクコマンドを、 完全なパス名を指定しなくても実行できます。 -n を用いると、それぞれの name は無効となります。 それ以外の場合には、name は有効となります。 例えば、シェル組み込みのものでなく PATH 上にある test バイナリを使うには ``enable -n test''. を実行します。 -f オプションは新しい組み込みコマンド name を共有オブジェクト filename からロードするという意味です。 これは動的ロードをサポートしているシステムで使えます。 -d オプションは、以前に -f オプションでロードした組み込みコマンドを削除します。 引き数 name が与えられなかった場合や、 -p オプションが与えられた場合、 シェルの組み込みコマンドのリストが表示されます。 他にオプション引き数が指定されていない場合には、 有効になっているシェル組み込みコマンド全てからなるリストが表示されます。 -n を与えると、無効にされている組み込みコマンドだけが出力されます。 -a を与えると、 それぞれ有効かどうかの表示付きで全ての組み込みコマンドが出力されます。 -s を与えると、出力されるのは POSIX の特殊組み込みコマンドだけに制限されます。 name がシェル組み込みコマンドでない場合と、 共有オブジェクトからの新しい組み込みコマンドのロードに失敗した場合を除き、 返り値は 0 となります。
- eval [arg ...]
- arg を読み込み、1 つのコマンドに結合し、 このコマンドを読み込んで実行します。 その終了ステータスが eval の値として返されます。 args がない場合や空の引き数しかない場合には eval は 0 を返します。
- exec [-cl] [-a name] [command [arguments]]
- command が指定されていると、シェルはこのコマンドに置き換えられます。 新しいプロセスは生成されません。 arguments は command に対する引き数となります。 -l オプションを与えると、シェルは command に渡す 0 番目のオプションの先頭にダッシュを設定します。 これは login(1) が行う動作です。 -c オプションを与えると、 command は空の環境で実行されます。 -a を与えると、シェルは実行するコマンドに 0 番目の引き数として name を渡します。何らかの理由で command が実行できない場合には非対話的シェルは終了します。 ただしシェルオプション execfail が設定されている場合は終了せず、この場合には偽が返されます。 ファイルが実行できない場合には、対話的シェルは偽を返します。 command が指定されていない場合、任意のリダイレクトはカレントシェルで効果を持ち、 終了ステータスは 0 となります。 リダイレクトのエラーが起きた場合には、終了ステータスは 1 となります。
- exit [n]
- ステータス n でシェルを終了させます。 n を省略すると、 終了ステータスは最後に実行したコマンドの終了ステータスとなります。 シェルが終了する前には、 EXIT に対するトラップが実行されます。
- export [-fn] [name[=word]] ...
- export -p
- 指定された name には印が付けられ、 これ以降に実行するコマンドの環境に 自動的にエクスポートされるようになります。 -f オプションを与えると、 name は関数を参照します。 name を与えなかった場合や、 -p オプションを与えた場合には、 このシェル内でエクスポートされている全ての名前のリストが出力されます。 -n オプションを与えると、指定した変数からエクスポート属性が取り除かれます。 変数名に =word が続くと、変数の値に word が設定されます。 不正なオプションがあった場合、 name のいずれかが不正なシェル変数名であった場合、 関数でない名前に対して -f オプションを与えた場合を除き、 export は終了ステータス 0 を返します。
- fc [-e ename] [-lnr] [first] [last]
- fc -s [pat=rep] [cmd]
-
フィックスコマンド (Fix Command)。 最初の形式では、 first から last までの範囲のコマンドが履歴リストから選択されます。 first と last には文字列か数値を指定します。 文字列はその文字列で始まる最後のコマンドを表し、 数値は履歴リスト中でのインデックスを表します (負の値は現在のコマンド番号からのオフセットとして扱われます)。 last が指定されていない場合、リスト表示の場合には 現在のコマンドが last に設定され (したがって ``fc -l -10'' で最近のコマンド 10 個が出力されます)、それ以外の場合には first が設定されます。 first が指定されていなければ、編集の場合には前のコマンドが first に設定され、 リスト表示の場合には -16 が設定されます。
-n オプションを与えるとリスト表示でコマンド番号が付きません。 -r オプションを与えるとコマンドの順序が逆になります。 -l オプションを与えると、コマンドは標準出力にリスト表示されます。 それ以外の場合には、これらのコマンドが書かれたファイルに対し、 ename で指定したエディタが起動されます。 ename が与えられていない場合は、変数 FCEDIT の値が使われ、 FCEDIT も設定されていない場合には EDITOR の値が使われます。 どちらの変数も設定されていなければ、 が使われます。 編集が終了すると、編集後のコマンドがエコー表示され、実行されます。
2 番目の形式では、pat の部分をそれぞれ rep で置き換えてから command が再実行されます。 これを利用している便利なエイリアスの例として ``r="fc -s"'', があります。 これを用いると ``r cc'' と入力すれば ``cc'' で始まる最も新しいコマンドを実行でき、 ``r'' と入力すれば直前のコマンドを再実行できます。
最初の形式を用いた場合、不正なオプションがあるか、 first または last が履歴行の範囲外を指定していなければ、返り値は 0 となります。 -e オプションが与えられた場合、 返り値は最後に実行されたコマンドの返り値となります。 ただし、コマンドの一時ファイルでエラーが起きた場合には返り値は偽 (失敗) となります。 2 番目の形式を用いた場合、 終了ステータスは再実行されたコマンドの終了ステータスとなります。 ただし、 cmd が有効な履歴行を指定していない場合は、 fc は偽 (失敗) を返します。
- fg [jobspec]
- jobspec の実行をフォアグラウンドで再開し、これをカレントジョブとします。 jobspec がない場合、シェルが記録しているカレントジョブが使われます。 返り値はフォアグラウンドで再開されたコマンドの返り値ですが、 ジョブ制御が無効であるときに実行した場合や、 ジョブ制御が有効であっても jobspec が有効なジョブを指定していない場合や jobspec がジョブ制御なしで実行したジョブを指定している場合には偽となります。
- getopts optstring name [args]
-
getopts は位置パラメータを解釈するシェルの処理で使います。 optstring は識別の対象であるオプション文字列です。 ある文字の後にコロンがある場合、 そのオプションは引き数を一つ取ることが期待されます。 引き数は空白でオプション文字と区切られていなければなりません。 コロンと疑問符はオプション文字として使えません。 呼び出されるたびに、 getopts は次に見つかったオプションをシェル変数 name に格納し (name が存在しなければ初期化を行います)、 次に処理される引き数のインデックスを変数 OPTIND に格納します。 OPTIND はシェルまたはシェルスクリプトが呼び出されるたびに 1 に初期化されます。 オプションが引き数を必要とする場合には、 getopts はその引き数を変数 OPTARG に格納します。 シェルが OPTIND を自動的に再設定することはありません。 1 つのシェルが呼び出されている間に別のパラメータの組み合わせを使う場合には、 再度 getopts を呼び出す前に手動で OPTIND の再設定を行わなければなりません。
オプションの終わりに到達すると、 getopts は 0 より大きい返り値で終了します。 OPTIND にはオプションでない最初の引き数のインデックスが設定され、 name には ? が設定されます。
getopts は通常位置パラメータを展開しますが、他の引き数が args に指定されている場合には、 getopts は位置パラメータでなくこれらの引き数を解釈対象とします。
getopts は 2 通りの方法でエラーを報告します。 optstring の最初の文字がコロンならば、 静かな (silent) エラー報告が行われます。 通常の動作では、不正なオプションがある場合や オプションの引き数が足りない場合に診断メッセージが出力されます。 変数 OPTERR に 0 が設定されている場合、 optstring の最初の文字がコロンでない場合であっても、 エラーメッセージは全く出力されません。
不正なオプションがあった場合、 getopts は ? を name に設定します。 さらに、静かなモードでない場合にはエラーメッセージが出力され、 OPTARG が削除されます。 getopts が静かなモードであれば、見つかったオプション文字は OPTARG に設定され、診断メッセージは出力されません。
必要な引き数が見つからず、かつ getopts が静かなモードでない場合には、疑問符 (?) が name に設定され、 OPTARG が削除され、診断メッセージが出力されます。 getopts が静かなモードならば、コロン (:) が name に設定され、 OPTARG には見つかったオプション文字が設定されます。
(指定の有無に関係なく) オプションが見つかった場合、 getopts は真を返します。 オプションの最後に到達した場合や、エラーが起きた場合には、 偽を返します。
- hash [-lr] [-p filename] [-dt] [name]
- hash が実行される度に、 $PATH に含まれるディレクトリの検索を行ってコマンド name の完全なパス名を調べ、 その結果を記憶します。 それまでに記憶されていたパス名は捨てられます。 -p オプションが指定されると、パス検索は実行されず、 filename がそのコマンドの完全なファイル名として使われます。 -r オプションを与えると、シェルは記憶しているパス名を全て忘れます。 -d オプションを与えると、シェルは各 name について記憶しているパス名を忘れます。 -t オプションを与えると、name に対応する完全なファイル名が表示されます。 -t に複数の name 引き数が指定された場合、 記憶されている完全なファイル名の前に name が表示されます。 -l オプションを与えると、入力として再利用できる形で出力されます。 引き数が与えられていない場合や、-l だけが与えられた場合は、 記憶しているコマンドに関する情報が出力されます。 name が見つからない場合と不正なオプションが与えられた場合を除き、 返却ステータスは真となります。
- help [-dms] [pattern]
-
組み込みコマンドのヘルプ情報を表示します。 pattern が指定された場合には、 help は pattern にマッチする全てのコマンドに関する詳しいヘルプを出力します。 指定されなかった場合には、 全ての組み込みコマンドと制御構造についての説明が出力されます。
-
- -d
- pattern それぞれの短い説明を表示します。
- -m
- pattern それぞれの説明を manpage 風のフォーマットで表示します。
- -s
- pattern それぞれの短い書式のみを表示します。
pattern にマッチするコマンドが全くない場合を除き、返却ステータスは 0 です。
- history [n]
- history -c
- history -d offset
- history -anrw [filename]
- history -p arg [arg ...]
- history -s arg [arg ...]
-
オプションがない場合には、行番号付きでコマンド履歴を表示します。 * 付きでリスト表示されている行は変更された行です。 引き数 n を指定すると、最新の n 行だけがリスト表示されます。 シェル変数 HISTTIMEFORMAT に空でない値が設定されると、履歴エントリを表示するときに タイムスタンプを表示するための strftime(3) の書式文字列 として使われます。 タイムスタンプと履歴行の間には空白は表示されません。 filename が指定されている場合、 履歴ファイルの名前として使われます。 指定されていない場合には HISTFILE の値が使われます。指定された場合、オプションは以下の意味を持ちます:
-
- -c
- 全てのエントリを削除し、履歴リストをクリアします。
- -d offset
- offset 番目にある履歴エントリを削除します。
- -a
- 「新しい」履歴行 (bash の現在のセッションの開始以降に入力された履歴行) を履歴ファイルに追加します。
- -n
- まだ履歴ファイルから読み込んでいない履歴行を 現在の履歴リストに読み込みます。 読み込まれるのは、bash の現在のセッションの開始以降に 履歴ファイルに追加された行です。
- -r
- 履歴ファイルの内容を読み込み、これらを現在の履歴として用います。
- -w
- 現在の履歴を履歴ファイルに書き込みます。履歴ファイルの内容は上書きされます。
- -p
- 後に続く args に対して履歴置換を行い、 その結果を標準出力に表示します。 この結果は履歴リストには格納されません。 通常の履歴展開が行われないようにするため、 arg はそれぞれクォートしなければなりません。
- -s
- args を 1 つのエントリとして履歴リストに格納します。 履歴リストの最後のコマンドは、 args が追加される前に削除されます。
HISTTIMEFORMAT 変数が設定されていると、履歴エントリのタイムスタンプの情報は、 履歴のコメント文字を付けて履歴ファイルに書き込まれます。 履歴ファイルを読み込むときに、履歴のコメント文字で始まり直後に数字が続く行は、 直前の履歴行のタイムスタンプとして解釈されます。 不正なオプションがある場合、 履歴ファイルの読み書き時にエラーが起きた場合、 -d オプションの引き数として不正な offset の値が与えられた場合、 -p オプションの引き数として与えられた履歴展開が失敗した場合を除き、 返り値は 0 になります。
- jobs [-lnprs] [ jobspec ... ]
- jobs -x command [ args ... ]
-
最初の形式を実行すると、アクティブなジョブがリスト表示されます。 オプションは以下の意味を持ちます:
-
- -l
- 通常の情報に加えて、プロセス ID をリスト表示します。
- -n
- ユーザがステータスを最後に通知されて以降に、 ステータスの変更があったジョブに関する情報だけを表示します。
- -p
- そのジョブが属するプロセスグループのリーダーのプロセス ID だけを表示します。
- -r
- 実行中のジョブだけを出力します。
- -s
- 停止中のジョブだけを出力します。
jobspec が指定された場合、 そのジョブに関する情報だけが出力されます。 不正なオプションがある場合や、不正な jobspec が与えられた場合を除き、返却ステータスは 0 です。
-x オプションが指定されると、 jobs は command や args 中の jobspec を対応するプロセスのグループ ID で置き換え、 command に args を与えて実行し、その終了ステータスを返します。
- kill [-s sigspec | -n signum | -sigspec] [pid | jobspec] ...
- kill -l [sigspec | exit_status]
- sigspec または signum で指定されたシグナルを、 pid または jobspec で指定されたプロセスに送ります。 sigspec は、 SIGKILL のようなシグナル名 (先頭の SIG は省略可能)、またはシグナルの番号です。 signum はシグナルの番号です。 sigspec が存在しない場合には、 SIGTERM が指定されたものとします。 引き数に -l を与えるとシグナル名がリスト表示されます。 -l と同時に引き数を与えると、 引き数に対応するシグナルの名前がリスト表示され、 返却ステータスは 0 となります。 -l に対する引き数 exit_status は、 シグナル番号、またはシグナルによって終了させられた プロセスの終了ステータスを指定する数です。 少なくとも 1 つのシグナルを正常に送れた場合、 kill は真を返します。 エラーが起きた場合や不正なオプションがあった場合には、 kill は偽を返します。
- let arg [arg ...]
- 各 arg は評価を行う算術式です (算術式展開 を参照)。 最後の arg を評価した結果が 0 であれば、 let は 1 を返します。 それ以外の場合には 0 が返されます。
- local [option] [name[=value] ...]
- それぞれの引き数に対して name という名前のローカル変数が生成され、 value が代入されます。 option には、 declare コマンドに使えるオプションが全て使えます。 関数内で local を使った場合、この変数 name の可視スコープは、この関数とこの関数の子に制限されます。 オペランドがない場合、 local はローカル変数の一覧を標準出力に出力します。 関数の内部以外で local を使うとエラーになります。 local が関数の外部で使われた場合、 不正な name が与えられた場合、 name が読み取り専用の変数であった場合以外は、 local の返却ステータスは 0 となります。
- logout
- ログインシェルを終了します。
- mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c quantum] [array]
- readarray [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c quantum] [array]
-
標準入力の各行を配列変数 array に読み込みます。 -u オプションが指定されたときは、ファイル・ディスクリプター fd から読み込みます。 変数 MAPFILE がデフォルトの array です。 オプションが指定された場合、以下の意味を持ちます:
-
- -n
- 最大 count 行をコピーします。count が 0 であれば、全ての行をコピーします。
- -O
- array のインデックス origin から代入を始めます。デフォルトのインデックスは 0 です。
- -s
- 最初の count 行を読み捨てます。
- -t
- 読み込んだ各行の末尾にある改行文字を削除します。
- -u
- 標準入力の代わりにファイル・ディスクリプター fd から行を読み込みます。
- -C
- quantum 行が読み込まれるごとに callback を評価します。-c オプションで quantum を指定します。
- -c
- callback を呼び出す間隔の行数を指定します。
-c なしで -C が指定されたとき、デフォルトの間隔は 5000 です。 callback が評価されるとき、 次に代入される配列要素のインデックスと、 その要素に代入される行が、引き数として与えられます。 callback は、行が読み込まれてから 配列の要素に代入されるまでの間に評価されます。
始点が明示的に指定されない場合、mapfile は値を代入する前に array をクリアします。
mapfile は、 不正なオプションやオプション引き数が指定された場合や、 array が不正か代入できない場合や、 array がインデックスによる配列でない場合でなければ、 成功の状態を返します。
- popd [-n] [+n] [-n]
-
ディレクトリスタックからエントリを削除します。 引き数がない場合には、スタック先頭のディレクトリが削除され、 新しく先頭となったディレクトリへの cd が実行されます。 引き数が指定された場合には、これは以下の意味を持ちます:
-
- -n
- スタックからディレクトリを削除する際に、 通常のディレクトリ変更を行いません。 したがって、スタックだけが操作されます。
- +n
- dirs で表示されるリストの左から数えて n 番目のエントリを削除します。 エントリは 0 から数えます。例えば、 ``popd +0'' は最初のディレクトリを削除し、 ``popd +1'' は 2 番目のディレクトリを削除します。
- -n
- dirs で表示されるリストの右から数えて n 番目のエントリを削除します。 エントリは 0 から数えます。例えば、 ``popd -0'' は最後のディレクトリを削除し、 ``popd -1'' は最後の 1 つ前のディレクトリを削除します。
popd コマンドが成功した場合、 dirs も実行され、返却ステータスは 0 となります。 popd が偽を返すのは、不正なオプションがあった場合、 ディレクトリスタックが空の場合、 ディレクトリスタックの存在しないエントリが指定された場合、 ディレクトリ変更に失敗した場合です。
- printf [-v var] format [arguments]
-
arguments を整形して標準出力に書き出します。 フォーマットは format で制御します。 -v オプションが与えられると、標準出力に書き出す代わりに、 変数 var に代入されます。
format は 3 つのタイプのオブジェクトを含む文字列です。 3 つのオブジェクトとは、普通の文字 (そのまま標準出力にコピーされる)、 文字エスケープシーケンス (変換されて標準出力にコピーされる)、 表示フォーマット指定 (format の後に続く各引き数 argument の表示を行う)、です。 printf(1) 標準のフォーマット指定以外に、以下の拡張フォーマットが使えます。
-
- %b
- printf は対応する argument 中の バックスラッシュのエスケープシーケンスを展開します。 ただし、\c で出力を終了し、\', \", \? のバックスラッシュは削られず、 \0 で始まる 8 進数のエスケープシーケンスは 4 桁までです。
- %q
- printf は対応する argument をシェルの入力として再利用できるフォーマットで出力します。
- %(datefmt)T
- printf は datefmt を strftime(3) の書式文字列として使って日付と時刻の文字列を出力します。 対応する argument は、紀元 (1970年 1 月 1 日 00:00:00 UTC) からの秒数を表す整数値です。argument には 2 つの特別な値が使えます。 -1 は現在時刻を表します。-2 はシェルが起動した時刻を表します。
文字列でないフォーマット指定に対する引き数は、C の定数として扱われます。 ただし、先頭のプラスとマイナスの記号は許されます。 また、先頭の文字がシングルクォートやダブルクォートであれば、 続く文字の ASCII コードの値が引き数の値となります。
format は必要に応じて再利用され、 全ての arguments を処理します。 与えられたよりも多くの arguments を format が必要とする場合、余分のフォーマット指定は、 0 と空文字列のうち、適切な方が指定されたかのように動作します。 成功した場合の返り値は 0 で、失敗した場合の返り値は 0 以外です。
- pushd [-n] [+n] [-n]
- pushd [-n] [dir]
-
ディレクトリをディレクトリのスタックに追加するか、 スタックをローテートさせます。 このとき、新しいスタックの最も上にあるものを カレントの作業ディレクトリにします。 引き数を与えなければ、 一番上の 2 つのディレクトリを交換し、0 を返します。 ただし、ディレクトリスタックが空の場合を除きます。 引き数を与えた場合には、以下の意味を持ちます:
-
- -n
- ディレクトリをスタックに追加したときに、 通常のディレクトリ変更を行いません。 したがって、スタックだけが操作されます。
- +n
- スタックをローテートさせ、n 番目のディレクトリを一番上にします。 このとき dirs が表示するリストは左から数え始め、その左端は 0 となります。
- -n
- スタックをローテートさせ、n 番目のディレクトリを一番上にします。 このとき dirs が表示するリストは右から数え始め、その右端は 0 となります。
- dir
- dir をディレクトリスタックの一番上に追加し、 そのディレクトリを新しいカレントの作業ディレクトリにします。
pushd コマンドが成功すると、 dirs コマンドも実行されます。 2 番目の形式を使った場合、 dir への cd が失敗しなければ、 pushd は 0 を返します。 最初の形式を使った場合には、 ディレクトリスタックが空の場合、 ディレクトリスタックの存在しない要素が指定された場合、 指定された新しいカレントディレクトリへの ディレクトリ変更が失敗した場合以外は、 pushd は基本的には 0 を返します。
- pwd [-LP]
- 現在の作業ディレクトリの絶対パス名を出力します。 -P オプションが指定された場合や、組み込みコマンド set の -o physical オプションが有効になっている場合には、 シンボリックリンクを展開したパス名が出力されます。 -L オプションを使うと、 出力されるパス名にはシンボリックリンクが含まれているかもしれません。 カレントディレクトリの名前を読む際にエラーが起きたり、 不正なオプションが指定されたりしなければ、返却ステータスは 0 となります。
- read [-ers] [-a aname] [-d delim] [-i text] [-n nchars] [-N nchars] [-p prompt] [-t timeout] [-u fd] [name ...]
-
標準入力、 または -u オプションの引き数として指定されたファイル・ディスクリプター fd から 1 行を読み込み、最初の単語を最初の name に代入し、2 番目の単語を 2 番目の name に代入します。以降も同様です。 余った単語とそれらの間の区切り文字は、最後の name に代入されます。 name よりも標準入力から読み込んだ単語の方が少ない場合には、 余っている name には空文字列が値として代入されます。 IFS 中の文字が、行を単語に分割するために使われます。 バックスラッシュ文字 (\) を使うと、 次に読み込んだ文字の特殊な意味を消したり、行を連結したりできます。 オプションが与えられていれば、以下の意味を持ちます:
-
- -a aname
- 単語を配列変数 aname にインデックス順に代入します。インデックスは 0 から始まります。 新しい値が代入される前に aname は削除されます。他の name 引き数は無視されます。
- -d delim
- 改行ではなく、delim の最初の文字が、入力行を終了するために使われます。
- -e
- 標準入力を端末から読み込む場合、 readline (前述の READLINE ライブラリ のセクションを参照) を使って行を取得します。 readline は現在の (行編集がそれまで有効になっていなければデフォルトの) 編集設定を使います。
- -i text
- 行を取得するのに readline が使われるとき、入力を開始する前に編集バッファに text が置かれます。
- -n nchars
- 組み込みコマンド read は、 入力行全体が読み込まれるのを待たず、 nchars 文字を読み込んだ時点で戻ります。 ただし、nchars 文字が読み込まれる前に区切り文字が現われたときは、 区切り文字を優先します。
- -N nchars
- 入力行全体が読み込まれるのを待たず、 nchars 文字を読み込んだ時点で戻ります。 ただし、入力に EOF が現れたときや、 read がタイムアウトになったときを除きます。 入力に区切り文字が現れても特別扱いはせず、 nchars 文字を読み込むまでは read が戻ることはありません。
- -p prompt
- 入力を読み込もうとする前に標準エラー出力に prompt を表示します。 末尾に改行は付きません。 プロンプトが表示されるのは、入力を端末から読み込む場合だけです。
- -r
- バックスラッシュはエスケープ文字として作用しません。 バックスラッシュは行の一部とみなされます。 特に、バックスラッシュと改行の組み合わせを使って 複数の行を接続することはできません。
- -s
- 静かな (silent) モード。端末に入力が行われても、文字はエコーされません。
- -t timeout
- 入力行全体が timeout 秒以内で読み込まれない場合、 read をタイムアウトさせて、失敗の状態を返します。 timeout は小数部を持つ十進数でもかまいません。 このオプションは、 read が入力を端末やパイプ、その他の特殊ファイルから 読み込んでいる場合にのみ効果があります。 通常のファイルから読み込んでいる場合には影響ありません。 timeout が 0 のときは、read は指定したファイル・ディスクリプター から読み込める状態であれば成功の状態を返し、そうでなければ失敗の状態を返します。 タイムアウト時間を超えた場合、終了ステータスは 128 より大きい値になります。
- -u fd
- ファイル・ディスクリプター fd から入力を読み込みます。
name が全く与えられていない場合、読み込まれた行は変数 REPLY に代入されます。 ファイル末尾に到達した場合、 read がタイムアウトした場合 (この場合には終了ステータスは 128 より大きい値になります)、 -u の引き数として不正なファイル・ディスクリプターが指定した場合以外は、 終了コードは 0 です。
- readonly [-aAf] [-p] [name[=word] ...]
- 指定された name に読み込み専用の印を付けます。 それ以降は、これらの name の値を変更することはできません。 -f オプションを与えた場合、name に対応する関数に同様の印が付きます。 -a オプションを与えると、配列変数だけが対象となります。 -A オプションを与えると、連想配列変数だけが対象となります。 両方のオプションを与えると、 -A が優先されます。 name 引き数が全く与えられてない場合、または -p オプションが与えられた場合、読み込み専用の名前全ての一覧が出力されます。 ほかのオプションを合わせて指定すると、出力を読み込み専用の名前の一部に限定します。 -p オプションを使うと、 入力として再利用できるようなフォーマットで出力が行われます。 変数名に =word が続くと、変数の値に word が設定されます。 返却ステータスは基本的に 0 ですが、 無効なオプションがあった場合、 name のいずれかが有効なシェル変数名でなかった場合、 -f オプションの際に関数でない name を与えた場合は除きます。
- return [n]
- 指定した返り値 n で関数を終了させます。 n を省略すると、返却ステータスは 関数内で最後に実行したコマンドの返却ステータスになります。 関数の外側で使われているが、 . (source) コマンドによるスクリプトの実行中である場合、 シェルはそのスクリプトの実行を止め、 n またはスクリプト内で最後に実行されたコマンドの終了ステータスを スクリプトの終了ステータスとして返します。 関数の外側で . によるスクリプトの実行中以外に使われた場合、 返却ステータスは偽となります。 関数やスクリプトから実行が戻る前に、 RETURN トラップ に設定されたコマンドが実行されます。
- set [--abefhkmnptuvxBCEHPT] [-o option-name] [arg ...]
- set [+abefhkmnptuvxBCEHPT] [+o option-name] [arg ...]
-
オプションなしの場合は、シェル変数全ての名前と値の組が表示されます。 表示は、現在設定されている変数を設定や再設定をする入力 として再利用できるフォーマットで行われます。 読み込み専用の変数は再設定できません。 posix モード ではシェル変数だけが表示されます。 出力は現在のロケールに従ってソートされます。 オプションが指定されている場合、 オプションはシェルの属性を設定または解除します。 オプションが処理された後に残っている引き数があれば、 これは位置パラメータの値として扱われ、 $1, $2, ... $n の順に代入されます。 オプションが指定されていれば、以下の意味を持ちます:
-
- -a
- 値を変更したり新規に設定したりした変数および関数が、 (これ以降に実行するコマンドの) 環境として 自動的にエクスポートされます。
- -b
- 終了したバックグラウンドジョブのステータス報告を、 次のプライマリプロンプトの前ではなく、即座に行います。 これはジョブ制御が有効な場合に限り有効です。
- -e
- パイプライン (1 つの 単純なコマンド からなるものでもよい)、 括弧で囲まれた サブシェル のコマンド、 ブレース (前述の シェルの文法 を参照) で囲まれたコマンドのリストの一部として実行されたコマンドの 1 つ が 0 でないステータスで終了した場合、即座に終了します。 ただし、失敗したコマンドが、キーワード while または until の直後のコマンドの一部である場合、予約語 if または elif に続く条件式の一部である場合、 && または || によるコマンドのリストの一部である場合 (最後の && や || の後のコマンドを除く)、 パイプラインの中の最後のコマンド以外である、 コマンドの返り値が ! で反転されている場合、のいずれかであれば、シェルは終了しません。 ERR に対するトラップが設定されていれば、シェルが終了する前に実行されます。 このオプションはシェルの環境と各サブシェルの環境に別々に適用され (前述の コマンド実行環境 を参照)、 サブシェルはサブシェル内の全てのコマンドを実行する前に終了するかもしれません。
- -f
- パス名展開を無効にします。
- -h
- 実行時に参照できるようにコマンドの位置を記憶します。 これはデフォルトで有効になっています。
- -k
- コマンド名の前にある代入文だけでなく、 引数として指定された全て代入文も、 そのコマンドに対する環境変数に追加されます。
- -m
- 監視モード。ジョブ制御は有効になります。ジョブ制御 (前述の ジョブ制御 セクションを参照) をサポートしているシステム上の対話的シェルでは、 このオプションはデフォルトで有効です。 別のプロセスグループで実行されたバックグラウンドプロセスと、 これらの終了ステータスが書かれた行が、プロセスの終了時に表示されます。
- -n
- コマンドを読み込みますが実行はしません。 これを使うとシェルスクリプトの文法エラーをチェックできます。 このオプションは対話的シェルでは無視されます。
- -o option-name
-
option-name には、以下のいずれかを指定できます:
-
- allexport
- -a と同じです。
- braceexpand
- -B と同じです。
- emacs
- emacs 形式のコマンド行編集インタフェースを使います。 これはシェルが対話的な場合には、デフォルトで有効です。 ただし、 --noediting オプション付きでシェルを実行した場合は除きます。 これは、read -e での編集インタフェースにも影響します。
- errexit
- -e と同じです。
- errtrace
- -E と同じです。
- functrace
- -T と同じです。
- hashall
- -h と同じです。
- histexpand
- -H と同じです。
- history
- コマンド履歴を有効にします。コマンド履歴については 履歴 セクションで説明しています。 このオプションは、対話的シェルではデフォルトで有効です。
- ignoreeof
- シェルコマンドの ``IGNOREEOF=10'' を実行した場合と同じ効果を持ちます (前述の シェル変数 を参照)。
- keyword
- -k と同じです。
- monitor
- -m と同じです。
- noclobber
- -C と同じです。
- noexec
- -n と同じです。
- noglob
- -f と同じです。
- nolog
- 現在は無視されます。
- notify
- -b と同じです。
- nounset
- -u と同じです。
- onecmd
- -t と同じです。
- physical
- -P と同じです。
- pipefail
- 設定されている場合、パイプラインの返り値は、 0 以外のステータスで終了した最後の (一番右の) コマンドの値になります。 パイプラインの全てのコマンドが成功の状態で終了すると 0 になります。 このオプションは、デフォルトで無効です。
- posix
- bash の動作のうち、デフォルトの振舞いが POSIX 標準と異なる部分を、POSIX 標準に準拠するように変更します (posix モード)。
- privileged
- -p と同じです。
- verbose
- -v と同じです。
- vi
- vi 形式のコマンド行編集インタフェースを使います。 これは、read -e での編集インタフェースにも影響します。
- xtrace
- -x と同じです。
option-name なしで -o オプションを与えた場合、現在のオプションが出力されます。 option-name なしで +o オプションを与えた場合、現在のオプション設定を再生成する set コマンドの列が標準出力に出力されます。
- -p
- 特権 (privileged) モードを有効にします。 このモードでは $ENV と $BASH_ENV ファイルは処理されず、シェル関数は環境から継承されず、 SHELLOPTS, BASHOPTS, CDPATH, GLOBIGNORE 環境変数は定義されていても無視されます。 実ユーザ (グループ) ID と異なる実効ユーザ (グループ) ID でシェルが起動され、 かつ -p オプションが与えられていない場合、 これらの動作が行われ、実効ユーザ ID には実ユーザ ID が設定されます。 起動時に -p オプションが与えられた場合、 実効ユーザ ID は再設定されません。 このオプションを無効にすると、 実効ユーザ ID と実効グループ ID には、 実ユーザ ID と 実グループ ID が設定されます。
- -t
- コマンドを 1 つ読み込み、実行してから終了します。
- -u
- パラメータ展開の実行中に、特殊パラメータ "@" と "*" 以外で 設定されていない変数やパラメータをエラーとして扱います。 設定されていない変数やパラメータを展開しようとした場合、 シェルはエラーメッセージを出力します。 シェルが対話的でなければ、0 でないステータスで終了します。
- -v
- シェルの入力行を、読み込んだ際に表示します。
- -x
- 単純なコマンド、for コマンド、case コマンド、 select コマンド、算術 for コマンドをそれぞれ展開した後、 PS4 を展開した値を表示し、その後にそのコマンドと展開した引き数や、 結び付いた単語のリストを表示します。
- -B
- シェルはブレース展開 (前述の ブレース展開 を参照) を実行します。これはデフォルトで有効です。
- -C
- 設定されている場合、 bash はリダイレクト演算子 >, >&, <> で既存のファイルを上書きしません。 上書きができるのは、リダイレクト演算子 >| を > の代わりに使ったときです。
- -E
- 設定されている場合、ERR のトラップは、 シェル関数、コマンド置換、サブシェル環境で実行されるコマンド に継承されます。 通常、このような場面では ERR のトラップは継承されません。
- -H
- ! 形式の履歴置換を有効にします。 このオプションは、シェルが対話的なときにはデフォルトで有効です。
- -P
- 設定されている場合、 cd のような現在の作業ディレクトリを変更するコマンドを実行するときに、 シェルはシンボリックリンクを辿りません。 代わりに物理的ディレクトリ構造が使われます。 デフォルトでは、 bash がカレントディレクトリを変更するコマンドを実行する際には、 ディレクトリの論理的な接続が辿られます。
- -T
- 設定されている場合、DEBUG と RETURN のトラップは、 シェル関数、コマンド置換、サブシェル環境で実行されるコマンド に継承されます。 通常、このような場面では DEBUG と RETURN のトラップは継承されません。
- --
- このオプションの後に引き数が続いていない場合には、 位置パラメータの設定が取り消されます。 引き数が続いている場合には、位置パラメータに arg が設定されます。 arg に - で始まるものが含まれていても、 オプションではなく位置パラメータとして扱われます。
- -
- オプションの終わりを示します。 残りの arg は全て位置パラメータに代入されます。 -x オプションと -v オプションは無効になります。 arg がない場合には、位置パラメータの内容は変化しません。
特に断らない限り、各オプションはデフォルトで無効になっています。 - の代わりに + を使うと、これらのオプションは無効になります。 オプションはシェルを起動する際の引き数としても指定できます。 現在のオプションの集合は、 $- で知ることができます。 不正なオプションが無ければ、終了ステータスは必ず真となります。
- shift [n]
- n+1 ... からの位置パラメータの名前を変え、 $1 ... とします。 $# から $#-n+1 までの数字で表される パラメータは unset されます。 n は 0 以上 $# 以下の数でなければなりません。 n が 0 ならば、どのパラメータも変更されません。 n が与えられない場合には、1 が指定されたものとみなされます。 n が $# より大きい場合、位置パラメータは変化しません。 n が $# より大きい場合や 0 より小さい場合には、 返却ステータスは 0 より大きい数になります。 それ以外の場合には 0 になります。
- shopt [-pqsu] [-o] [optname ...]
-
シェルのオプション動作を制御する変数の値をトグルさせます。 オプションがない場合や、 -p オプションが指定されている場合には、 設定可能なオプション全てのリストが表示されます。 表示の際には、それぞれが設定されているかどうかも示されます。 オプションの表示は、入力として再利用できるフォーマットで行われます。 その他のオプションは、以下の意味を持っています:
-
- -s
- optname をそれぞれ有効にします (設定します)。
- -u
- optname をそれぞれ無効にします (設定解除します)。
- -q
- 通常の出力を止めます (静かなモード)。 返却ステータスは optname が設定されているかどうかを示します。 複数の optname 引き数と -q が指定されている場合には、 全ての optnames が有効であるときに返却ステータスが 0 となります。 それ以外のときには、0 でない値となります。
- -o
- optname の値を、組み込みコマンド set の -o オプションで定義されているものに制限します。
引き数 optname なしで -s オプションまたは -u オプションを使った場合、それぞれ設定されているもの、 または設定されていないものだけに表示が限定されます。 特に断らない限り、shopt オプションは デフォルトで無効 (設定解除) になっています。
オプションをリスト表示したときの返却ステータスは、 全ての optnames が有効になっている場合は 0 となります。 それ以外の場合には 0 でない値となります。 設定または設定取り消しのオプションのときには、 optname が不正なシェルオプションでなければ、 返却ステータスは 0 となります。
shopt オプションのリストを以下に示します:
- autocd
- 設定されている場合、ディレクトリの名前のコマンド名は、 それが cd コマンドの引き数に指定されたものとして実行されます。 このオプションが使われるのは対話的シェルだけです。
- cdable_vars
- 設定されている場合、組み込みコマンド cd への引き数でディレクトリでないものは変数の名前とみなされ、 その値が変更先のディレクトリとなります。
- cdspell
- 設定されている場合、 cd コマンドのディレクトリ要素におけるスペルのちょっとした誤りは修正されます。 チェックされる誤りは、文字の入れ替わり・文字の欠け・ 1 文字余分にあることです。 訂正できた場合には、訂正後のファイル名が表示され、 コマンドは続けて実行されます。 このオプションが使われるのは対話的シェルだけです。
- checkhash
- 設定されている場合、 bash はハッシュ表で見つけたコマンドを実行する前に 実際に存在するかどうかをチェックします。 ハッシュされているコマンドが既になくなっている場合、 通常のパス検索が行われます。
- checkjobs
- 設定されている場合、bash は対話的シェルが終了する前に、 停止中のジョブや実行中のジョブの状態を一覧します。 実行中のジョブがあれば、シェルの終了は、 間にほかのコマンドを挟まずに 2 回目の終了が試みられるまで延期されます (前述の ジョブ制御 を参照)。 停止中のジョブがある場合は、シェルは常に終了を延期します。
- checkwinsize
- 設定されている場合、bash はコマンドの実行後に毎回ウィンドウの大きさをチェックし、 必要に応じて LINES と COLUMNS の値を更新します。
- cmdhist
- 設定されている場合、 bash は複数行に分かれているコマンドの全ての行を、 同じ履歴エントリに保存しようとします。 これを使うと、複数行に分かれているコマンドの再編集が容易になります。
- compat31
- 設定されている場合、 bash は、条件コマンド [[ の =~ 演算子のクォートされた引き数に関して bash version 3.1 の動作に変更します。
- compat32
- 設定されている場合、 bash は、条件コマンド [[ の < 演算子と > 演算子によるロケール固有の文字列比較に関して、 version 3.2 の動作に変更します。 bash の bash-4.1 より前のバージョンでは、ASCII コードの照合と strcmp(3) を使います。 bash-4.1 およびそれ以後のバージョンでは、 現在のロケールの照合順序と strcoll(3) を使います。
- compat40
- 設定されている場合、 bash は、条件コマンド [[ の < 演算子と > 演算子によるロケール固有の文字列比較 (前項を参照) とコマンドリストの解釈の効果に関して、 version 4.0 の動作に変更します。
- compat41
- 設定されている場合、 bash は posix モードのときに、 ダブルクォートの中のパラメータ展開で シングルクォートを特殊文字として扱います。 シングルクォートは対応が取れている (偶数個) 必要があり、 シングルクォートの間の文字はクォートされているものとして扱われます。 これは version 4.1 の posix モードの動作です。 bash のデフォルトの動作は前のバージョンのままです。
- dirspell
- 設定されている場合、 bash は 指定されたディレクトリ名が存在しなければ、 単語補完のときにディレクトリ名のスペルの訂正を試みます。
- dotglob
- 設定されている場合、 bash は `.' で始まるファイル名をパス名展開の結果に含めます。
- execfail
- 設定されている場合、 組み込みコマンド exec への引き数として指定されたファイルが実行できなくても、 対話的でないシェルが終了しません。 対話的シェルは exec に失敗しても終了しません。
- expand_aliases
- 設定されている場合、エイリアスが前述の エイリアス セクションで説明したように展開されます。 このオプションは、対話的なシェルではデフォルトで有効です。
- extdebug
-
設定されている場合、デバッガのための動作が有効になります。
-
- 1.
- 組み込みコマンド declare の -F オプションが、 引き数で指定された各関数のソースファイル名と行番号を表示します。
- 2.
- DEBUG のトラップで実行されたコマンドが 0 以外を返したとき、 次のコマンドはスキップされ実行もされません。
- 3.
- DEBUG のトラップで実行されたコマンドが 2 を返し、かつ、 シェルがサブルーチン (シェル関数や、組み込みコマンドの . や source により実行されたシェルスクリプト) を実行しているとき、return の呼び出しがシミュレートされます。
- 4.
- 上記のシェル変数の説明で述べたように、 BASH_ARGC と BASH_ARGV が更新されます。
- 5.
- 関数のトレースが有効になります。 コマンド置換、シェル関数、( command ) で起動されたサブシェルは、 DEBUG と RETURN のトラップを継承します。
- 6.
- エラーのトレースが有効になります。 コマンド置換、シェル関数、( command ) から起動されたサブシェルは、 ERR のトラップを継承します。
- extglob
- 設定されている場合、拡張されたパターンマッチング機能が有効になります。 これについては、前述のパス名展開で説明しています。
- extquote
- 設定されている場合、ダブルクォート中の ${parameter} の展開で、$'string' と $"string" のクォートが機能します。 このオプションは、デフォルトで有効です。
- failglob
- 設定されている場合、パス名展開でパターンがファイル名のマッチに失敗すると、 展開エラーになります。
- force_fignore
- 設定されている場合、単語補完において、シェル変数 FIGNORE で指定されたサフィックスの単語は無視されます。 無視された単語が唯一の補完候補であったとしても無視されます。 詳しい説明については、前述の シェル変数 の FIGNORE の説明を参照してください。 このオプションは、デフォルトで有効です。
- globstar
- 設定されている場合、** というパターンがパス名展開で使われると、 深さ 0 以上のディレクトリやサブディレクトリの全てのファイルにマッチします。 直後に / が続く場合には、 ディレクトリとサブディレクトリのみにマッチします。
- gnu_errfmt
- 設定されている場合、シェルのエラーメッセージは GNU 標準のエラーメッセージの形式で出力されます。
- histappend
- 設定されている場合、シェルの終了時に変数 HISTFILE の値で指定しているファイルに履歴リストが追加されます。 ファイルへの上書きは行われなくなります。
- histreedit
- この変数が設定されており、かつ readline が使われている場合、ユーザは失敗した履歴置換を再編集できます。
- histverify
- この変数が設定されており、かつ readline が使われている場合、履歴置換の結果は即座にはシェルのパーザに渡されません。 その代わり、結果として得られた行は readline の編集バッファに読み込まれ、さらに修正できます。
- hostcomplete
- この変数が設定されており、かつ readline が使われている場合、bash は @ を含む単語を補完するときにホスト名補完を実行しようとします (前述の READLINE ライブラリ のセクションにおける 補完 を参照)。 これはデフォルトで有効になっています。
- huponexit
- 設定されている場合、bash は対話的なログインシェルを終了するときに、 全てのジョブに SIGHUP を送ります。
- interactive_comments
- 設定されている場合、 # で始まる単語について、その単語とその行の残りの文字を 対話的シェルに無視させることができます (前述の コメント セクションを参照)。 このオプションはデフォルトで有効になっています。
- lastpipe
- 設定されており、かつジョブ制御が有効でなければ、 シェルはバックグラウンドでの実行ではないパイプラインの最後のコマンドを 現在のシェル環境で実行します。
- lithist
- 設定されており、かつ cmdhist オプションが有効ならば、 複数行に分かれているコマンドは (セミコロンで区切られるのではなく) できる限り途中に改行を埋め込むことで履歴に保存されます。
- login_shell
- シェルがログインシェルとして起動されると (前述の INVOCATION を参照)、このオプションが設定されます。 この値を変更することはできません。
- mailwarn
- 設定されており、かつ bash がメールのチェックに使うファイルが 前回のチェック以降にアクセスされている場合、 メッセージ ``The mail in mailfile has been read'' が表示されます。
- no_empty_cmd_completion
- 設定されており、かつ readline が使われている場合、 空行に対してコマンド補完をさせようとしたときに、 bash は補完候補を PATH から検索しません。
- nocaseglob
- 設定されている場合、 bash はパス名展開 (前述の パス名展開 を参照) を行うときに、 ファイル名の大文字と小文字を区別せずにマッチングを行います。
- nocasematch
- 設定されている場合、 bash は条件コマンド case や [[ 実行時のパターンマッチで 大文字小文字を区別せずにパターンマッチを行います。
- nullglob
- 設定されている場合、 bash はどのファイルにもマッチしないパターン (前述の パス名展開 を参照) を、その文字列自身ではなく、空文字列に展開します。
- progcomp
- 設定されている場合、プログラム補完機能 (前述のプログラム補完を参照) が有効になります。 このオプションはデフォルトで有効になっています。
- promptvars
- 設定されている場合、 プロンプト文字列に対して パラメータ展開、コマンド置換、算術式展開、クォート削除 が行われます。 この展開は前述の プロンプト セクションで説明した展開が行われた後に行われます。 このオプションはデフォルトで有効になっています。
- restricted_shell
- シェルが制限モードで起動された場合、 このオプションが設定されます (後述の 制限付きのシェル セクションを参照)。 この値を変更することはできません。 これは起動ファイルが実行されるときにもリセットされないので、 シェルが制限付きかどうかを起動ファイル内部で知ることができます。
- shift_verbose
- 設定されている場合、組み込みコマンド shift においてシフトの回数が位置パラメータの数を超えると、 エラーメッセージが出力されます。
- sourcepath
- 設定されている場合、組み込みコマンド source (.) は PATH の値を使って、引き数として与えられたファイルを含むディレクトリを探します。 このオプションはデフォルトで有効です。
- xpg_echo
- 設定されている場合、 組み込みコマンド echo は デフォルトでバックスラッシュによるエスケープシーケンスを展開します。
- suspend [-f]
- SIGCONT シグナルを受け取るまで、シェルの実行をサスペンドします。 ログインシェルはサスペンドできません。 -f オプションを与えると、この動作が上書きされ、ログインシェルがサスペンド できるようになります。 シェルがログインシェルかつ -f が与えられていない場合と、ジョブ制御が有効でない場合とを除いて、 返却ステータスは 0 です。
- test expr
- [ expr ]
-
条件式 expr を評価した結果に基づいて、ステータス 0 または 1 を返します。 演算子とオペランドそれぞれは別々の引き数でなければなりません。 式は前述の 条件式 セクションで説明したプライマリで構成されます。 test はオプションを受け取らず、 引き数 -- をオプションの終わりを示すものとして受け取りも無視もしません。
式は次に示す演算子を使って結合できます。 優先度の高い順に示します。 式の評価は後で述べるように引き数の数に依存します。 引き数が 5 つ以上のときは演算子の優先度に従います。
-
- ! expr
- expr が偽ならば真になります。
- ( expr )
- expr の値を返します。 これを使うと、通常の演算子の優先度を変更できます。
- expr1 -a expr2
- expr1 と expr2 が両方とも真ならば真になります。
- expr1 -o expr2
- expr1 と expr2 のいずれかが真ならば真になります。
test および [ は、 引き数の数に基づいた規則の集合を用いて条件式を評価します。
- 引き数が 0 個
- この式は偽です。
- 引き数が 1 個
- 引き数が空でない場合に限り真になります。
- 引き数が 2 個
- 最初の引き数が ! ならば、 2 番目の引き数が空の場合に限り真になります。 最初の引き数が、既に 条件式 セクションで説明した単項条件演算子のいずれかであれば、 単項の評価が真の場合に式は真となります。 最初の引き数が正しい単項条件演算子でなければ、式は偽となります。
- 引き数が 3 個
- 以下の順に条件が適用されます。 2 番目の引き数が、既に 条件式 セクションで説明した二値条件演算子のいずれかであれば、 最初の引き数と 3 番目の引き数をオペランドとして使った 二値評価の結果が式の結果となります。 引き数が 3 個の場合、 -a と -o は二値演算子として扱われます。 最初の引き数が ! であれば、2 番目と 3 番目の引き数を使った、 引き数 2 つの評価の結果を否定したものが値となります。 最初の引き数が ( であり、3 番目の引き数が ) ならば、 2 番目の引き数を使って引き数 1 つの評価を行った値が結果となります。 これら以外の場合には、式は偽となります。
- 引き数が 4 個
- 最初の引き数が ! ならば、 残りの引き数で作った引き数 3 つの式の値を否定したものが結果となります。 それ以外の場合には、先に挙げた規則を使った優先度に従って 式が展開・評価されます。
- 引き数が 5 個以上
- 先に挙げた規則を使った優先度に従って式が展開・評価されます。
test や [ では、演算子 < と > は ASCII コードに基づき辞書順にソートします
- times
- シェルとシェルから実行したプロセスのそれぞれについて、 累積のユーザ時間とシステム時間を加えたものを出力します。 返却ステータスは 0 です。
- trap [-lp] [[arg] sigspec ...]
-
シェルがシグナル sigspec を受け取ると、コマンド arg が読み込まれて、実行されます。 arg が存在しない (かつ sigspec が一つ指定された) 場合か、 arg が - の場合、 指定されたシグナルは全てオリジナルの動作 (シェルの起動時に設定されていた値) にリセットされます。 arg が空文字列である場合、それぞれの sigspec で指定されたシグナルは、 シェルとシェルが起動したコマンドから無視されます。 arg なしで -p オプションが与えられた場合、 各 sigspec に関連付けられた trap コマンドが表示されます。 引き数が全くないか、 -p だけが与えられた場合、 trap は各シグナルに関連付けられたコマンドのリストを出力します。 -l オプションを与えると、 シェルはシグナル名と対応する番号のリストを出力します。 それぞれの sigspec は、<signal.h> で定義されているシグナル名、またはシグナル番号です。 シグナル名は大文字小文字は区別されず、先頭の SIG は省略可能です。
sigspec が EXIT (0) であれば、シェルの終了時にコマンド arg が実行されます。 sigspec が DEBUG であれば、各々の 単純なコマンド、for コマンド、case コマンド、select コマンド、各々の算術 for コマンドの前、およびシェル関数の最初のコマンドの実行前 (前述の シェルの文法セクションを参照) に、コマンド arg が実行されます。 DEBUG のトラップの影響についての詳細は組み込みコマンド shopt の extdebug オプションの説明を参照してください。 sigspec が RETURN であれば、シェル関数の実行、または組み込みコマンドの . や source で実行されたスクリプトの実行が終わるたびにコマンド arg が実行されます。
sigspec が ERR であれば、 単純なコマンドが 0 以外の終了ステータスのときにコマンド arg が実行されます。 ただし、失敗したコマンドが、 while または until キーワード直後のコマンドリストに含まれる場合、 if 文の条件に含まれる場合、 && や || のリスト中で実行するコマンドに含まれる場合、 および、コマンドの戻り値が ! で反転されている場合には、 ERR のトラップは実行されません。 これらは errexit オプションが従う条件と同じです。
シェルに入る際に無視されるシグナルは、 トラップもリセットもできません。 無視されなかったシグナルのトラップは、 サブシェルやサブシェル環境では作られたときに 元の値にリセットされます。 sigspec のいずれかが不正であれば、返却ステータスは偽になります。 それ以外の場合には、 trap は真を返します。
- type [-aftpP] name [name ...]
- オプションなしの場合には、各 name をコマンド名として使ったときに、それがどのように解釈されるかを示します。 -t オプションを使うと、 name がエイリアス、シェルの予約語、関数、 組み込みコマンド、ディスク上のファイルのいずれかの場合、 type はそれぞれ alias, keyword, function, builtin, file という文字列を出力します。 name が見つからない場合は何も出力されず、偽の終了ステータスが返されます。 -p オプションを使うと、 type は name をコマンド名として指定した場合に実行されるディスクファイルの名前を返します。 ただし、 ``type -t name'' が file を返さない場合は、何も返しません。 -P オプションを使うと、 ``type -t name'' が file を返さない場合でも name を PATH から探します。 コマンドがハッシュされている場合、 -p や -P はハッシュされている値を表示します。 この場合、表示されるのは、必ずしも PATH 中で最初に現われるファイルとは限りません。 -a オプションを使うと、 type は name という名前の実行ファイルがある場所を全て出力します。 -p オプションが同時に使われていない場合に限り、 エイリアスや関数も出力されます。 -a を使うときには、ハッシュされているコマンドの表は参照されません。 -f オプションを使うと、 組み込みコマンド command と同じように、シェル関数を探しません。 type は、すべての引き数が見つかれば真を返し、 いずれかが見つからなければ偽を返します。
- ulimit [-HSTabcdefilmnpqrstuvx [limit]]
-
これを使うと、シェルおよびシェルが起動するプロセスが 利用できるリソースを制御できます。 ただし、このような制御ができるシステムの場合に限ります。 -H オプションと -S オプションは、 それぞれ指定されたリソースに対する 強い制限 (hard limit) と弱い制限 (soft limit) を設定します。 強い制限は一度設定すると、root 以外のユーザが増やすことはできません。 弱い制限は強い制限の値までは増やせます。 -H と -S がどちらも指定されていない場合、 強い制限と弱い制限が両方とも設定されます。 limit の値には、数字 (単位はリソースに応じて規定)、または hard, soft, unlimited が指定できます。 hard, soft, unlimited は、それぞれ現在の強い制限、現在の弱い制限、制限なしを表します。 limit を省略すると、リソースの弱い制限の現在値が表示されます。 ただし、-H が与えられている場合は除きます。 複数のリソースが指定されているときは、制限名と単位が値の前に出力されます。 他のオプションは以下のように解釈されます:
-
- -a
- 現在の制限を全て表示する
- -b
- ソケットバッファの最大サイズ
- -c
- 生成されるコア (core) ファイルの最大サイズ
- -d
- プロセスのデータセグメントの最大サイズ
- -e
- スケジュール優先度 ("nice") の最大値
- -f
- シェルとその子プロセスが生成できるファイルの最大サイズ
- -i
- 保留中シグナルの最大数
- -l
- メモリにロックできる最大サイズ
- -m
- 常駐セットサイズ (resident set size) の最大値 (多くのシステムはこの制限を守りません)
- -n
- オープンできるファイル・ディスクリプターの最大数 (ほとんどのシステムでは、この値を設定することはできません)
- -p
- 512 バイトブロック単位でのパイプのサイズ (これは設定できないかもしれません)
- -q
- POSIX メッセージキューの最大バイト数
- -r
- リアルタイム・スケジューリングの優先度の最大値
- -s
- 最大スタックサイズ
- -t
- CPU 時間の最大量 (秒単位)
- -u
- 1 人のユーザが使用できる最大のプロセス数
- -v
- そのシェルが使用できる最大の仮想メモリ量 (システムによっては、子プロセスも含まれる)
- -x
- ファイルロックの最大数
- -T
- スレッドの最大数
limit が指定された場合、その値が指定されたリソースの新しい値となります (-a は表示専用です)。 オプションが全く指定されなかった場合は、 -f が指定されたものとみなされます。 値は 1024 バイト単位で増えますが、例外として -t は秒単位、 -p 512 バイトブロック単位、 -T, -b, -n, -n, -u は単位なしの値です。 返却ステータスは基本的に 0 ですが、 不正なオプションや引き数が渡された場合、 新しい制限を設定する際にエラーが起きた場合は除きます。
- umask [-p] [-S] [mode]
- ユーザのファイル生成マスクに mode を設定します。 mode が数字で始まる場合には、これは 8 進数と解釈されます。 それ以外の場合には、 chmod(1) に指定するのと同様のシンボリックなモードマスクと解釈されます。 mode が省略されると、現在のマスクの値が出力されます。 -S オプションを指定すると、マスクはシンボリックな形式で表示されます。 デフォルトの出力は 8 進の数値です。 -p オプションが指定され、かつ mode が省略された場合、入力として再利用できる形式で出力が行われます。 モードが正常に変更できた場合や、 mode 引き数が全く与えられなかった場合には、 返却ステータスは 0 となります。 それ以外の場合には偽となります。
- unalias [-a] [name ...]
- 定義されているエイリアスのリストから name を削除します。 -a が与えられている場合には、エイリアス定義は全て削除されます。 与えられた name が定義されているエイリアスでない場合以外は、返却ステータスは真になります。
- unset [-fv] [name ...]
- name それぞれについて、対応する変数や関数を削除します。 オプションが全く指定されていない場合や、 -v オプションが指定された場合は、各 name はシェル変数を参照します。 読み込み専用の変数の設定を消すことはできません。 -f が指定されている場合、各 name はシェル関数を参照し、その関数の定義が削除されます。 設定が消された変数や関数は全て、 それ以降のコマンドに渡される環境変数からも削除されます。 COMP_WORDBREAKS, RANDOM, SECONDS, LINENO, HISTCMD, FUNCNAME, GROUPS, DIRSTACK のいずれかの設定を消した場合、これらが持つ特別な特性もなくなります。 これは後で再設定しても元に戻ることはありません。 name が読み込み専用の場合以外は、 終了ステータスは真となります。
- wait [n ...]
- 指定された各プロセスを wait し、その終了ステータスを返します。 各 n はプロセス ID またはジョブ指定です。 ジョブ指定を与えた場合、そのジョブのパイプラインに含まれる 全てのプロセスを wait します。 n が与えられていない場合には、現在アクティブな全ての子プロセスを wait し、 返却ステータスは 0 となります。 n が存在しないプロセスやジョブを指定している場合、 返却ステータスは 127 になります。 それ以外の場合、返却ステータスは wait していた最後のプロセスまたはジョブの終了ステータスとなります。