Unix-commands-bash
bash-Unix、Linuxコマンド
link:/unix_commands/index [previous] link:/unix_commands/index [next] [[1]] php [AddThis Social Bookmark Button]
NAME
概要
著作権
説明
BashshBash KornC kshcsh *
オプション
Tag
説明
-i
-l
-r
-s
-D
- [-+] O [** shopt_option]
_shopt_option_は、 shopt ビルトインで受け入れられるシェルオプションの1つです(下記の* SHELL BUILTINコマンド*を参照)。 _shopt_option_が存在する場合、-O *はそのオプションの値を設定します。 *+ O は設定を解除します。 _shopt_option_が指定されていない場合、 shopt で受け入れられるシェルオプションの名前と値が標準出力に出力されます。 呼び出しオプションが + O の場合、出力は入力として再利用できる形式で表示されます。
--
A * オプションの終了を通知し、それ以降のオプション処理を無効にします。 後の引数 * ファイル名と引数として扱われます。 の議論 * *-*と同等です。
バッシュ
Tag
説明
- - デバッガ*
シェルが開始する前に実行されるデバッガープロファイルを準備します。 拡張デバッグモード(以下の shopt ビルトインの extdebug オプションの説明を参照)およびシェル関数トレース( set ビルトインの -o functrace オプションの説明を参照)をオンにします。
- -dump-po-strings *
-ダンプ文字列
- - 助けて*
標準出力に使用方法のメッセージを表示し、正常に終了します。
-init-file *file -rcfile * file
シェルがインタラクティブな場合は、標準の個人用初期化ファイル_〜/.bashrc_の代わりに_file_からコマンドを実行します(以下の link:#6 [INVOCATION] を参照)。
- ログイン*
- -編集なし *
GNU* readline *ライブラリを使用して、シェルが対話型の場合にコマンドラインを読み取らないでください。
- -noprofile *
システム全体の起動ファイル_/etc/profile_または個人の初期化ファイル_〜/.bash_profile 、〜/.bash_login_、または_〜/.profile_のいずれも読み取らないでください。 デフォルトでは、 bash はログインシェルとして呼び出されたときにこれらのファイルを読み取ります(以下の link:#6 [INVOCATION] を参照)。
- -norc *
シェルが対話型の場合、個人用初期化ファイル_〜/.bashrc_を読み取って実行しないでください。 このオプションは、シェルが sh として呼び出される場合、デフォルトでオンになります。
- -posix *
デフォルトの動作がPOSIX標準とは異なる bash の動作を変更して、標準(posix mode)に一致させます。
-制限付き
シェルが制限されます(下記の RESTRICTED SHELL を参照)。
- -rpm-requires *
シェルスクリプトの実行に必要なファイルのリストを作成します。 これは「-n」を意味し、コンパイル時のエラーチェックチェックと同じ制限に従います。バックティック、[]テスト、およびevalsは解析されないため、一部の依存関係が失われる可能性があります。
-詳細
- バージョン*
引数
呼び出し
login shell * --- login *
_interactive_シェルは、非オプション引数なしで開始され、-c *オプションなしで開始され、その標準入力とエラーは両方とも端末に接続されます( *isatty (3)で決定)、または -i で開始されますオプション。 PS1 が設定され、 bash が対話型の場合、* $-には *i が含まれ、シェルスクリプトまたはスタートアップファイルでこの状態をテストできます。
次の段落では、 bash が起動ファイルを実行する方法について説明します。 いずれかのファイルが存在するが読み取ることができない場合、 bash はエラーを報告します。 チルダは、 link:#20 [EXPANSION] セクションの link:#22 [Tilde Expansion] の下で説明されているように、ファイル名で展開されます。
ログインシェルが終了すると、 bash はファイル_〜/.bash_logout_(存在する場合)からコマンドを読み取り、実行します。
ログインシェルではないインタラクティブシェルが開始されると、 bash は_〜/.bashrc_からコマンドを読み取り、実行します(そのファイルが存在する場合)。 これは、-norc *オプションを使用して禁止できます。 *-rcfile * file_オプションは、 *bash に〜/.bashrc_ではなく_file_からコマンドを強制的に読み取らせて実行させます。
`+ if [-n" $ BASH_ENV "];その後。 「$ BASH_ENV」; fi + `
ただし、 PATH 変数の値はファイル名の検索には使用されません。
-posix *コマンドラインオプションと同様に、 *bash を_posix_モードで起動すると、起動ファイルのPOSIX標準に従います。 このモードでは、対話型シェルが ENV 変数を展開し、名前が展開された値であるファイルからコマンドが読み取られて実行されます。 他の起動ファイルは読み込まれません。
実際のユーザー(グループ)IDと等しくない有効なユーザー(グループ)IDでシェルが開始され、-p *オプションが指定されていない場合、起動ファイルは読み込まれず、シェル関数は環境から継承されません。 *SHELLOPTS 変数は、環境に表示される場合は無視され、有効なユーザーIDは実際のユーザーIDに設定されます。 呼び出し時に -p オプションが指定されている場合、起動時の動作は同じですが、有効なユーザーIDはリセットされません。
定義
このドキュメントの残りの部分では、次の定義が使用されます。
Tag
説明
ブランク
スペースまたはタブ。
- ワード *
シェルによって単一のユニットと見なされる一連の文字。* トークン*とも呼ばれます。
- 名 *
英数字とアンダースコアのみで構成され、アルファベット文字またはアンダースコアで始まる_単語_。* 識別子*とも呼ばれます。
メタ文字
引用されていないときに単語を区切る文字。 次のいずれか
- | &; ()<>スペースタブ*
制御演算子
制御機能を実行する_token_。 次の記号のいずれかです。
- *|| &&&;
- ()| <改行>*
予約語
予約語 * SHELL GRAMMARcasefor *
- ! 場合は、elif else esac fiを実行します。selectの場合、while \ {}時間まで[[SHELL GRAMMAR
シンプルなコマンド
_simple command_は、一連のオプションの変数割り当てで、その後に*空白*で区切られた単語とリダイレクトが続き、_control operator_で終了します。 最初の単語は実行されるコマンドを指定し、引数ゼロとして渡されます。 残りの単語は、引数として呼び出されたコマンドに渡されます。
simple command_の戻り値は、その終了ステータス、またはコマンドがシグナル_n_で終了した場合は128 + ' nです。
パイプライン
_pipeline_は、文字 | で区切られた1つ以上のコマンドのシーケンスです。 パイプラインの形式は次のとおりです。
[ time [ -p ]] [! ] command [ | command2 … ]
_command_の標準出力は、パイプを介して_command2_の標準入力に接続されます。 この接続は、コマンドで指定されたリダイレクトの前に実行されます(以下の link:#30 [REDIRECTION] を参照)。
パイプラインの各コマンドは、個別のプロセスとして(つまり、サブシェルで)実行されます。
リスト
_list_は、演算子*; 、&、 *&& 、または || のいずれかで区切られた1つ以上のパイプラインのシーケンスであり、オプションで*; 、&*、または*のいずれかで終了します。 <改行> *。
これらのリスト演算子のうち、 && と || の優先順位は等しく、その後に*; と&、*が続きます。これらの優先順位は同じです。
コマンドを区切るために、1つ以上の改行のシーケンスがセミコロンの代わりに_list_に現れる場合があります。
コマンドが制御演算子*&*によって終了された場合、シェルはサブシェルの_background_でコマンドを実行します。 シェルはコマンドの終了を待たず、戻りステータスは0です。 *; *で区切られたコマンドは順番に実行されます。シェルは、各コマンドが順番に終了するのを待ちます。 戻りステータスは、最後に実行されたコマンドの終了ステータスです。
制御演算子 && および || は、それぞれANDリストとORリストを示します。 ANDリストの形式は
command1 && command2
_command2_は、_command1_がゼロの終了ステータスを返す場合にのみ実行されます。
ORリストの形式は
command1 || command2
_command2_は、_command1_がゼロ以外の終了ステータスを返す場合にのみ実行されます。 ANDおよびORリストの戻り状況は、リスト内で最後に実行されたコマンドの終了状況です。
複合コマンド
_compound command_は次のいずれかです。
Tag
説明
(リスト)
_list_はサブシェル環境で実行されます(以下の link:#38 [COMMAND EXECUTION ENVIRONMENT] を参照)。 シェルの環境に影響を与える変数の割り当てと組み込みコマンドは、コマンドの完了後は有効になりません。 戻りステータスは、_list_の終了ステータスです。
\ {list; }
_list_は、現在のシェル環境で単に実行されます。 _list_は、改行またはセミコロンで終了する必要があります。 これは_group command_として知られています。 戻りステータスは、_list_の終了ステータスです。 メタ文字*(および)とは異なり、 \ {および} *は_予約語_であり、予約語の認識が許可されている場所で発生する必要があることに注意してください。 これらはワードブレークを引き起こさないため、空白で_list_から分離する必要があります。
((expression))
_expression_は、以下の*算術評価*で説明されているルールに従って評価されます。 式の値がゼロ以外の場合、戻りステータスは0です。それ以外の場合、戻りステータスは1です。 これはlet " expression"とまったく同じです。
条件式_expression_の評価に応じて、0または1のステータスを返します。 式は、 CONDITIONAL EXPRESSIONS の下で説明するプライマリで構成されます。 単語分割とパス名展開は、 and''' ;の間の単語に対しては実行されません。チルダ展開、パラメータおよび変数展開、算術展開、コマンド置換、プロセス置換、および引用削除が実行されます。 *-f などの条件演算子は、プライマリとして認識されるように引用符で囲まないでください。
式は、次の演算子を使用して結合できます。これらの演算子は、優先順位の高い順にリストされています。
Tag
説明
( expression)
_expression_の値を返します。 これは、演算子の通常の優先順位をオーバーライドするために使用できます。
- ! *expression
_expression_がfalseの場合はtrue。
expression1* && *expression2
_expression1_と_expression2_の両方がtrueの場合、true。
expression1* || * expression2
_expression1_または_expression2_のいずれかがtrueの場合、true。
_expression1_の値が条件式全体の戻り値を決定するのに十分な場合、 && および || 演算子は_expression2_を評価しません。
最初に、算術式_expr1_は、以下の*算術評価*で説明されている規則に従って評価されます。 算術式_expr2_は、ゼロと評価されるまで繰り返し評価されます。 _expr2_がゼロ以外の値に評価されるたびに、_list_が実行され、算術式_expr3_が評価されます。 式が省略された場合、1と評価されるかのように動作します。 戻り値は、実行された_list_の最後のコマンドの終了ステータス、またはいずれかの式が無効な場合はfalseです。
ケース *word in * [[(] pattern [ | pattern]
[* elif list; then list; ] … [ else list; ] fi* if _list_が実行されます。 終了ステータスがゼロの場合、 then _list_が実行されます。 それ以外の場合、各 elif _list_が順番に実行され、その終了ステータスがゼロの場合、対応する then _list_が実行され、コマンドが完了します。 それ以外の場合、 else _list_が実行されます(存在する場合)。 終了ステータスは、最後に実行されたコマンドの終了ステータス、または真とテストされた条件がない場合はゼロです。
Shell関数の定義
シェル関数は、単純なコマンドのように呼び出され、新しい一連の位置パラメーターを使用して複合コマンドを実行するオブジェクトです。 シェル関数は次のように宣言されます。
Tag
説明
[ function ] name()compound-command [redirection]
これは、_name_という名前の関数を定義します。 予約語 function はオプションです。 function 予約語が指定されている場合、括弧はオプションです。 関数の_body_は複合コマンド_compound-command_です(上記の link:#11 [複合コマンド] を参照)。 そのコマンドは通常、\ {と}の間のコマンドの_list_ですが、上記の link:#11 [Compound Commands] の下にリストされているコマンドであればどれでもかまいません。 _compound-command_は、_name_が単純なコマンドの名前として指定されるたびに実行されます。 関数の定義時に指定されたリダイレクト(以下の link:#30 [REDIRECTION] を参照)は、関数の実行時に実行されます。 関数定義の終了ステータスは、構文エラーが発生するか、同じ名前の読み取り専用関数が既に存在する場合を除き、ゼロです。 関数の終了ステータスは、実行されると、本体で最後に実行されたコマンドの終了ステータスです。 (以下の link:#37 [FUNCTIONS] を参照してください。)
コメント
見積り
_link:#14 [引用] _
上記の link:#7 [DEFINITIONS] の下にリストされている_メタ文字_は、シェルにとって特別な意味があり、それ自体を表す場合は引用符で囲む必要があります。
コマンド履歴拡張機能を使用している場合(下記の HISTORY EXPANSION を参照)、_ history expansion_文字(通常は*!*)を引用符で囲んで、履歴の拡張を防止する必要があります。
escape character、一重引用符、および二重引用符の3つの引用メカニズムがあります。
引用符で囲まれていないバックスラッシュ( \ )は、エスケープ文字です。 <newline>を除き、次の文字のリテラル値を保持します。 * \ * <newline>ペアが表示され、バックスラッシュ自体が引用されていない場合、* \ * <newline>は行の継続として扱われます(つまり、入力ストリームから削除され、事実上無視されます)。
文字を一重引用符で囲むと、引用符内の各文字のリテラル値が保持されます。 バックスラッシュが前にあっても、単一引用符は単一引用符の間には現れないかもしれません。
二重引用符で文字を囲むと、引用符内のすべての文字のリテラル値が保持されますが、例外は $ 、* ’、 *\ 、および履歴展開が有効な場合は*!です。 文字 *$ および* ’は、二重引用符内で特別な意味を保持します。 バックスラッシュは、 *$ 、* ´、 "、 *\ 、または <newline> のいずれかの文字が後に続く場合にのみ、特別な意味を保持します。 二重引用符は、二重引用符の中にバックスラッシュを付けることによって引用符で囲むことができます。 有効にした場合、二重引用符で囲まれた*!*がバックスラッシュを使用してエスケープされない限り、履歴展開が実行されます。 *!*の前のバックスラッシュは削除されません。
特別なパラメーター * and @ は、二重引用符で囲まれている場合に特別な意味を持ちます(以下の link:#15 [PARAMETERS] を参照)。
Tag | Description |
---|---|
\a | alert (bell) |
\b | backspace |
\e | an escape character |
\f | form feed |
\n | new line |
\r | carriage return |
\t | horizontal tab |
\v | vertical tab |
\\ | backslash |
\\(aq | single quote |
\nnn | the eight-bit character whose value is the octal value nnn (one to three digits) |
\xHH | the eight-bit character whose value is the hexadecimal value HH (one or two hex digits) |
\cx | a control-x character |
拡大された結果は、ドル記号が存在しなかったかのように一重引用符で囲まれます。
二重引用符で囲まれた文字列の前にドル記号( $ )があると、現在のロケールに従って文字列が翻訳されます。 現在のロケールが C または POSIX の場合、ドル記号は無視されます。 文字列が翻訳および置換される場合、置換は二重引用符で囲まれます。
パラメーター
parametername * link:#17 [特別なパラメーター] variablenamevalueattributes declaredeclareSHELL BUILTIN COMMANDS *
パラメータは、値が割り当てられている場合に設定されます。 null文字列は有効な値です。 変数が設定されると、 unset 組み込みコマンドを使用してのみ設定を解除できます(下記の* SHELL BUILTINコマンド*を参照)。
_variable_は、次の形式のステートメントによって割り当てられます。
name = [_ value_]
_value_が指定されていない場合、変数にはヌル文字列が割り当てられます。 すべての_values_は、チルダ展開、パラメーターと変数の展開、コマンド置換、算術展開、および引用符の削除を受けます(以下の link:#20 [EXPANSION] を参照)。 変数に integer 属性が設定されている場合、$((…))展開が使用されていない場合でも、_value_は算術式として評価されます(以下の link:#25 [算術展開] を参照)。 link:#17 [特殊パラメータ] で説明されている "$ @" を除き、ワード分割は実行されません。 パス名の展開は実行されません。 割り当てステートメントは、 alias 、 declare 、 typeset 、 export 、 readonly 、および local 組み込みコマンドの引数として表示される場合もあります。
割り当てステートメントがシェル変数または配列インデックスに値を割り当てるコンテキストでは、+ =演算子を使用して、変数の以前の値に追加または追加できます。 整数属性が設定されている変数に+ =が適用されると、_value_は算術式として評価され、変数の現在値に追加されます。これも評価されます。 複合代入を使用して配列変数に+ =が適用されると(以下の link:#19 [配列] を参照)、変数の値は設定解除されず(=を使用する場合のように)、新しい値が配列の先頭に追加されます配列の最大インデックスより1つ大きい。 文字列値の変数に適用されると、_value_は展開されて変数の値に追加されます。
位置パラメータ
_positional parameter_は、1桁の0以外の1つ以上の数字で示されるパラメーターです。 位置パラメータは、シェルの起動時にシェルの引数から割り当てられ、 set 組み込みコマンドを使用して再割り当てできます。 位置指定パラメーターは、割り当てステートメントを使用して割り当てることはできません。 シェル関数が実行されると、位置パラメータは一時的に置き換えられます(下記の link:#37 [FUNCTIONS] を参照)。
1桁を超える位置パラメータを展開する場合は、中括弧で囲む必要があります(以下の link:#20 [EXPANSION] を参照)。
特殊パラメーター
シェルはいくつかのパラメーターを特別に扱います。 これらのパラメーターは参照のみ可能です。それらへの割り当ては許可されていません。
Tag | Description |
---|---|
** * | Expands to the positional parameters, starting from one. When the expansion occurs within double quotes, it expands to a single word with the value of each parameter separated by the first character of the* IFS* special variable. That is, "$" is equivalent to "$1c$2*c*…", where c is the first character of the value of the *IFS *variable. If IFS is unset, the parameters are separated by spaces. If IFS* is null, the parameters are joined without intervening separators. |
@ | Expands to the positional parameters, starting from one. When the expansion occurs within double quotes, each parameter expands to a separate word. That is, "$@" is equivalent to "$1" "$2" … If the double-quoted expansion occurs within a word, the expansion of the first parameter is joined with the beginning part of the original word, and the expansion of the last parameter is joined with the last part of the original word. When there are no positional parameters, "$@" and $@ expand to nothing (i.e., they are removed). |
# | Expands to the number of positional parameters in decimal. |
? | Expands to the status of the most recently executed foreground pipeline. |
*- * | Expands to the current option flags as specified upon invocation, by the* set builtin command, or those set by the shell itself (such as the -i* option). |
$ | Expands to the process ID of the shell. In a () subshell, it expands to the process ID of the current shell, not the subshell. |
! | Expands to the process ID of the most recently executed background (asynchronous) command. |
*0 * | Expands to the name of the shell or shell script. This is set at shell initialization. If* bash is invoked with a file of commands, $0 is set to the name of that file. If bash is started with the -c option, then $0 is set to the first argument after the string to be executed, if one is present. Otherwise, it is set to the file name used to invoke bash*, as given by argument zero. |
_ | At shell startup, set to the absolute pathname used to invoke the shell or shell script being executed as passed in the environment or argument list. Subsequently, expands to the last argument to the previous command, after expansion. Also set to the full pathname used to invoke each command executed and placed in the environment exported to that command. When checking mail, this parameter holds the name of the mail file currently being checked. |
シェル変数
次の変数はシェルによって設定されます。
Tag
説明
バッシュ
値が現在のbash実行呼び出しスタックの各フレーム内のパラメーターの数である配列変数。 現在のサブルーチン(シェル関数または*。または *source で実行されるスクリプト)のパラメーターの数は、スタックの一番上にあります。 サブルーチンが実行されると、渡されたパラメーターの数が BASH_ARGC にプッシュされます。 シェルは、拡張デバッグモードの場合にのみ BASH_ARGC を設定します(以下の shopt ビルトインの extdebug オプションの説明を参照)
現在のbash実行呼び出しスタック内のすべてのパラメーターを含む配列変数。 最後のサブルーチン呼び出しの最後のパラメーターは、スタックの一番上にあります。最初の呼び出しの最初のパラメーターは下部にあります。 サブルーチンが実行されると、提供されたパラメーターは BASH_ARGV にプッシュされます。 シェルは、拡張デバッグモードの場合にのみ BASH_ARGV を設定します(以下の shopt ビルトインの extdebug オプションの説明を参照)
シェルがトラップの結果としてコマンドを実行している場合を除き、現在実行中または実行されようとしているコマンド。この場合、コマンドはトラップの時点で実行されているコマンドです。
メンバーが FUNCNAME の各メンバーに対応するソースファイルの行番号である配列変数。 $ \ {BASH_LINENO [* $ i ]} は、 $ \ {FUNCNAME [ $ ifP ]} が呼び出されたソースファイルの行番号です。 対応するソースファイル名は* $ \ {BASH_SOURCE [* $ i ]}です。 現在の行番号を取得するには、* LINENO を使用します。
メンバーが* =〜二項演算子によって [[conditionalコマンドに割り当てられている配列変数。 インデックス0の要素は、正規表現全体に一致する文字列の部分です。 インデックス_n_を持つ要素は、nth番目の括弧で囲まれた部分式に一致する文字列の部分です。 この変数は読み取り専用です。
メンバーが FUNCNAME 配列変数の要素に対応するソースファイル名である配列変数。
サブシェルまたはサブシェル環境が生成されるたびに1ずつ増加します。 初期値は0です。
メンバーが bash のこのインスタンスのバージョン情報を保持する読み取り専用の配列変数。 配列メンバーに割り当てられる値は次のとおりです。
Tag | Description |
---|---|
BASH_VERSINFO[0] | The major version number (the release). |
BASH_VERSINFO[1] | The minor version number (the version). |
BASH_VERSINFO[2] | The patch level. |
BASH_VERSINFO[3] | The build version. |
BASH_VERSINFO[4] | The release status (e.g., beta1). |
BASH_VERSINFO[5] | The value of MACHTYPE. |
現在のカーソル位置を含む単語の $ \ {COMP_WORDS} へのインデックス。 この変数は、プログラム可能な補完機能によって呼び出されるシェル関数でのみ使用できます(下記の link:#52 [Programmable Completion] を参照)。
現在のコマンドライン。 この変数は、プログラム可能な補完機能によって呼び出されるシェル関数と外部コマンドでのみ使用できます(下記の link:#52 [Programmable Completion] を参照)。
現在のコマンドの先頭を基準とした現在のカーソル位置のインデックス。 現在のカーソル位置が現在のコマンドの最後にある場合、この変数の値は $ \ {#COMP_LINE} に等しくなります。 この変数は、プログラム可能な補完機能によって呼び出されるシェル関数と外部コマンドでのみ使用できます(下記の link:#52 [Programmable Completion] を参照)。
ワード補完を実行するときに、Readlineライブラリがワード区切り文字として扱う文字のセット。 COMP_WORDBREAKS が設定されていない場合、その後リセットされても特別なプロパティは失われます。
現在のコマンドラインの個々の単語で構成される配列変数(以下の link:#19 [Arrays] を参照)。 単語は、シェルパーサーがそれらを分離するため、シェルメタキャラクターで分割されます。 この変数は、プログラム可能な補完機能によって呼び出されるシェル関数でのみ使用できます(下記の link:#52 [Programmable Completion] を参照)。
ディレクトリスタックの現在の内容を含む配列変数( link:#19 [Arrays] を参照)。 ディレクトリは、 dirs ビルトインによって表示される順序でスタックに表示されます。 この配列変数のメンバーへの割り当ては、既にスタックにあるディレクトリを変更するために使用できますが、ディレクトリを追加および削除するには、 pushd および popd ビルトインを使用する必要があります。 この変数に割り当てても、現在のディレクトリは変更されません。 DIRSTACK が設定されていない場合、その後リセットされても、特別なプロパティは失われます。
シェルの起動時に初期化された現在のユーザーの実効ユーザーIDに展開します。 この変数は読み取り専用です。
現在実行呼び出しスタック内にあるすべてのシェル関数の名前を含む配列変数。 インデックス0の要素は、現在実行中のシェル関数の名前です。 一番下の要素は「メイン」です。 この変数はシェル関数が実行されているときだけ存在します。 FUNCNAME への割り当ては効果がなく、エラーステータスを返します。 FUNCNAME が設定されていない場合、後でリセットされても特別なプロパティは失われます。
- グループ *
現在のユーザーがメンバーとなっているグループのリストを含む配列変数。* GROUPS への割り当ては効果がなく、エラーステータスを返します。 *GROUPS が設定されていない場合、後でリセットされても特別なプロパティは失われます。
現在のコマンドの履歴番号、または履歴リスト内のインデックス。 HISTCMD が設定されていない場合、その後リセットされても、その特別なプロパティは失われます。
ホスト名
現在のホストの名前に自動的に設定されます。
ホストタイプ
- リノ *
このパラメーターが参照されるたびに、シェルはスクリプトまたは関数内の現在の連続した行番号(1から始まる)を表す10進数に置き換えます。 スクリプトまたは関数にない場合、置換される値が意味を持つことは保証されません。* LINENO *が設定されていない場合、その後リセットされても特別なプロパティは失われます。
最も最近実行されたフォアグラウンドパイプラインのプロセスからの終了ステータス値のリストを含む配列変数(以下の link:#19 [Arrays] を参照)(単一のコマンドのみを含む場合があります)。
シェルの親のプロセスID。 この変数は読み取り専用です。
ランダム
このパラメーターが参照されるたびに、0〜32767のランダムな整数が生成されます。 乱数のシーケンスは、 RANDOM に値を割り当てることで初期化できます。 RANDOM が設定されていない場合、後でリセットされても特別なプロパティは失われます。
応答
引数が指定されていないときに、 read 組み込みコマンドによって読み取られる入力行に設定します。
このパラメータが参照されるたびに、シェルが呼び出されてからの秒数が返されます。 SECONDS に値が割り当てられている場合、後続の参照で返される値は、割り当てからの秒数と割り当てられた値です。 SECONDS が設定されていない場合、その後リセットされても特別なプロパティは失われます。
シェルプ
有効なシェルオプションのコロン区切りのリスト。 リスト内の各単語は、 set 組み込みコマンドの -o オプションの有効な引数です(下記の* SHELL BUILTINコマンド*を参照)。 SHELLOPTS に表示されるオプションは、 set -o によって_on_として報告されるオプションです。 bash の起動時にこの変数が環境内にある場合、起動ファイルを読み込む前にリスト内の各シェルオプションが有効になります。 この変数は読み取り専用です。
現在のユーザーのユーザーIDに展開され、シェルの起動時に初期化されます。 この変数は読み取り専用です。
次の変数はシェルによって使用されます。 場合によっては、 bash はデフォルト値を変数に割り当てます。これらのケースについては以下で説明します。
列
選択リストを印刷するときに端末の幅を決定するために、 select 組み込みコマンドによって使用されます。 SIGWINCHの受信時に自動的に設定されます。
対応
プログラム可能な補完機能によって呼び出されたシェル関数によって生成される可能性のある補完を bash が読み取る配列変数(以下の link:#52 [Programmable Completion] を参照)。
シェルが値 `+ t +`で始まるときに bash が環境でこの変数を見つけた場合、シェルがemacsシェルバッファーで実行されていると想定し、行編集を無効にします。
ファイル名の補完を実行するときに無視する接尾辞のコロン区切りリスト(以下の link:#42 [READLINE] を参照)。 FIGNORE のエントリのいずれかに接尾辞が一致するファイル名は、一致するファイル名のリストから除外されます。 サンプル値は `"。o:〜 "`です。
グロビノー
パス名展開によって無視されるファイル名のセットを定義するパターンのコロン区切りのリスト。 パス名展開パターンに一致するファイル名が GLOBIGNORE のパターンのいずれかに一致する場合、そのファイルは一致リストから削除されます。
コマンドを履歴リストに保存する方法を制御する、コロンで区切られた値のリスト。 値のリストに_ignorespace_が含まれる場合、スペース*文字で始まる行は履歴リストに保存されません。 _ignoredups_の値により、前の履歴エントリに一致する行は保存されません。 _ignoreboth_の値は、_ignorespace_および_ignoredups_の省略形です。 値が_erasedups_の場合、現在の行に一致する以前のすべての行は、その行が保存される前に履歴リストから削除されます。 上記のリストにない値は無視されます。 *HISTCONTROL が設定されていない場合、または有効な値が含まれていない場合、シェルパーサーによって読み取られたすべての行は、 HISTIGNORE の値に従って履歴リストに保存されます。 複数行の複合コマンドの2行目以降はテストされず、 HISTCONTROL の値に関係なく履歴に追加されます。
履歴
コマンド履歴が保存されるファイルの名前(下記の link:#53 [HISTORY] を参照)。 デフォルト値は_〜/.bash_history_です。 設定しない場合、対話型シェルが終了するときにコマンド履歴は保存されません。
履歴ファイルに含まれる行の最大数。 この変数に値が割り当てられると、必要に応じて、最も古いエントリを削除して履歴ファイルが切り捨てられ、その行数以下になります。 デフォルト値は500です。 履歴ファイルは、インタラクティブシェルの終了時に書き込まれた後、このサイズに切り捨てられます。
履歴
どのコマンドラインを履歴リストに保存するかを決定するために使用される、コロンで区切られたパターンのリスト。 各パターンは行の先頭に固定され、完全な行と一致する必要があります(暗黙的な「*」は追加されません)。 HISTCONTROL で指定されたチェックが適用された後、各パターンは行に対してテストされます。 通常のシェルパターンマッチング文字に加えて、「&」は前の履歴行と一致します。 「&」はバックスラッシュを使用してエスケープできます。一致を試みる前にバックスラッシュが削除されます。 複数行の複合コマンドの2行目以降はテストされず、 HISTIGNORE の値に関係なく履歴に追加されます。
コマンド履歴に記憶するコマンドの数(下記の link:#53 [HISTORY] を参照)。 デフォルト値は500です。
この変数が設定されており、nullではない場合、その値は_strftime_(3)の書式文字列として使用され、 history ビルトインによって表示される各履歴エントリに関連付けられたタイムスタンプを印刷します。 この変数が設定されている場合、タイムスタンプは履歴ファイルに書き込まれるため、シェルセッション間で保持されます。
- ホーム *
現在のユーザーのホームディレクトリ。* cd *組み込みコマンドのデフォルト引数。 この変数の値は、チルダ展開を実行するときにも使用されます。
ホストファイル
/etc/hosts_と同じ形式のファイルの名前が含まれています。これは、シェルがホスト名を完成する必要があるときに読み取る必要があります。 ホスト名の補完候補のリストは、シェルの実行中に変更される場合があります。値が変更された後にホスト名の補完が次に試行されると、 bash は新しいファイルの内容を既存のリストに追加します。 HOSTFILE が設定されているが値がない場合、 bash は/etc/hosts_を読み取って、ホスト名の補完候補のリストを取得しようとします。 HOSTFILE が設定されていない場合、ホスト名リストはクリアされます。
展開後の単語分割、および read 組み込みコマンドで行を単語に分割するために使用される_Internal Field Separator_。 デフォルト値は「「<space> <tab> <newline>」」です。
無視
唯一の入力として EOF 文字を受信したときの対話型シェルのアクションを制御します。 設定されている場合、値は、 bash が終了する前に入力行の最初の文字として入力する必要がある連続した EOF 文字の数です。 変数は存在するが、数値を持たない場合、または値を持たない場合、デフォルト値は10です。 存在しない場合、 EOF はシェルへの入力の終わりを示します。
デフォルトの_〜/.inputrc_を上書きする readline スタートアップファイルのファイル名(下記の link:#42 [READLINE] を参照)。
この変数は、ロケールカテゴリを指定する LANG およびその他の LC_ 変数の値をオーバーライドします。
この変数は、パス名展開の結果をソートするときに使用される照合順序を決定し、パス名展開およびパターンマッチング内の範囲式、等価クラス、および照合シーケンスの動作を決定します。
この変数は、パス名展開およびパターンマッチング内の文字の解釈と文字クラスの動作を決定します。
この変数は、前に $ が付いた二重引用符付き文字列の翻訳に使用されるロケールを決定します。
この変数は、数値の書式設定に使用されるロケールカテゴリを決定します。
選択リストを印刷するための列の長さを決定するために、 select 組み込みコマンドによって使用されます。 SIGWINCHの受信時に自動的に設定されます。
郵便物
このパラメーターがファイル名に設定されており、 MAILPATH 変数が設定されていない場合、 bash は、指定されたファイルにメールが到着したことをユーザーに通知します。
メールチェック
メールをチェックするファイル名のコロン区切りリスト。 特定のファイルにメールが到着したときに印刷されるメッセージは、「?」でメッセージからファイル名を分離することで指定できます。 メッセージのテキストで使用すると、 $ _ は現在のメールファイルの名前に展開されます。 例:
MAILPATH * = \(aq/var/mail/bfox? "メールがあります":〜/shell-mail? "$ _メールがあります!" \(aq
値1に設定すると、 bash は、 getopts 組み込みコマンドによって生成されたエラーメッセージを表示します(下記の* SHELL BUILTINコマンド*を参照)。 OPTERR は、シェルが呼び出されるか、シェルスクリプトが実行されるたびに1に初期化されます。
パス
コマンドの検索パス。 これは、シェルがコマンドを探すディレクトリのコロン区切りのリストです(以下の COMMAND EXECUTION を参照)。 PATH の値に含まれるゼロ長(ヌル)のディレクトリ名は、現在のディレクトリを示します。 nullディレクトリ名は、2つの隣接するコロンとして、または最初のコロンまたは末尾のコロンとして表示される場合があります。 デフォルトのパスはシステムに依存し、 bash をインストールする管理者によって設定されます。 一般的な値は `+/usr/gnu/bin:/usr/local/bin:/usr/ucb:/bin:/usr/bin +`です。
設定されている場合、値は各プライマリプロンプトを発行する前にコマンドとして実行されます。
このパラメーターの値は展開され(以下の link:#41 [PROMPTING] を参照)、プライマリプロンプト文字列として使用されます。 デフォルト値は「「 \ s- \ v \ $ 」」です。
このパラメーターの値は、 PS1 と同様に展開され、2次プロンプト文字列として使用されます。 デフォルトは「 '>> *」です。
このパラメーターの値は、 select コマンドのプロンプトとして使用されます(上記の SHELL GRAMMAR を参照)。
このパラメーターの値は PS1 と同様に展開され、実行トレース中に各コマンド bash が表示される前に値が出力されます。 PS4 の最初の文字は、必要に応じて複数回複製され、複数レベルのインダイレクションを示します。 デフォルトは「「 + 」」です。
シェル
シェルへのフルパス名はこの環境変数に保持されます。 シェルの起動時に設定されていない場合、 bash は現在のユーザーのログインシェルのフルパス名を割り当てます。
このパラメーターの値は、 time 予約語で始まるパイプラインのタイミング情報の表示方法を指定するフォーマット文字列として使用されます。 *%*文字は、時間値またはその他の情報に展開されるエスケープシーケンスを導入します。 エスケープシーケンスとその意味は次のとおりです。中括弧はオプションの部分を示します。
Tag | Description |
---|---|
*%% * | A literal* %*. |
%[p][l]R | The elapsed time in seconds. |
%[p][l]U | The number of CPU seconds spent in user mode. |
%[p][l]S | The number of CPU seconds spent in system mode. |
%P | The CPU percentage, computed as (%U + %S)/%R. |
オプションの_p_は、小数点以下の小数桁数である_precision_を指定する数字です。 値が0の場合、小数点も小数も出力されません。 小数点以下の最大3桁を指定できます。 3より大きい_p_の値は3に変更されます。 _p_が指定されていない場合、値3が使用されます。
オプションの l は、分を含むMMm_SS _.FFsの形式の長い形式を指定します。 _p_の値は、端数が含まれるかどうかを決定します。
この変数が設定されていない場合、 bash は値 $ \(aq \ nreal \ t%3lR \ nuser \ t%3lU \ nsys%3lS \(aq 。 値がヌルの場合、タイミング情報は表示されません。 書式文字列が表示されると、末尾の改行が追加されます。
ゼロより大きい値に設定すると、 TMOUT は read 組み込みのデフォルトのタイムアウトとして扱われます。 入力が端末から来ているときに TMOUT 秒後に入力が到着しない場合、 select コマンドは終了します。 対話型シェルでは、この値は、プライマリプロンプトを発行してから入力を待機する秒数として解釈されます。 Bash は、入力が到着しない場合、その秒数だけ待機した後に終了します。
設定されている場合、 Bash はその値を、 Bash がシェルが使用する一時ファイルを作成するディレクトリの名前として使用します。
この変数は、シェルがユーザーおよびジョブ制御と対話する方法を制御します。 この変数が設定されている場合、リダイレクトなしの単一ワードの単純なコマンドは、既存の停止ジョブの再開の候補として扱われます。 あいまいさは許可されていません。入力した文字列で始まるジョブが複数ある場合、最後にアクセスしたジョブが選択されます。 このコンテキストでは、停止したジョブの_name_は、ジョブを開始するために使用されるコマンドラインです。 値_exact_に設定する場合、提供される文字列は、停止したジョブの名前と正確に一致する必要があります。 _substring_に設定されている場合、指定された文字列は、停止したジョブの名前のサブストリングと一致する必要があります。 _substring_値は、%?*ジョブ識別子に類似した機能を提供します(以下の *JOB CONTROL を参照)。 他の値に設定する場合、提供される文字列は、停止したジョブの名前のプレフィックスである必要があります。これにより、% stringジョブ識別子に類似した機能が提供されます。
履歴の展開とトークン化を制御する2つまたは3つの文字(以下の HISTORY EXPANSION を参照)。 最初の文字は、_history expansion_文字です。これは、履歴展開の開始を通知する文字で、通常は「!」です。 2番目の文字は_quick substitution_文字です。これは、入力された前のコマンドを再実行し、コマンド内のある文字列を別の文字列に置き換えるための省略形として使用されます。 デフォルトは「 ^ 」です。 オプションの3番目の文字は、単語の最初の文字(通常は「#」)として見つかった場合に、行の残りがコメントであることを示す文字です。 履歴コメント文字により、行の残りの単語の履歴置換がスキップされます。 必ずしもシェルパーサーが行の残りをコメントとして扱うとは限りません。
配列
構文_name _ [_ subscript ] = _ value_を使用して変数が割り当てられると、配列が自動的に作成されます。 _subscript_は、ゼロ以上の数値に評価される必要がある算術式として扱われます。 配列を明示的に宣言するには、 declare -a _name_を使用します(下記の SHELL BUILTINコマンドを参照)。 declare -a _name _ [ subscript_]も受け入れられます。 _subscript_は無視されます。 declare および *readonly 組み込み関数を使用して、配列変数に属性を指定できます。 各属性は、配列のすべてのメンバーに適用されます。
name = *( value_1_ …という形式の複合割り当てを使用して配列が割り当てられます valuen )、各_value_は[subscript _] = _ string_の形式です。 _string_のみが必要です。 オプションの括弧と添え字が指定されている場合、そのインデックスが割り当てられます。それ以外の場合、割り当てられた要素のインデックスは、ステートメントに割り当てられた最後のインデックスに1を加えたものです。 インデックス作成はゼロから始まります。 この構文は、組み込みの *declare でも受け入れられます。 上記の_name _ [ subscript _] = _ value_構文を使用して、個々の配列要素を割り当てることができます。
配列の任意の要素は、$ \ {_ name _ [_ subscript_]}を使用して参照できます。 中括弧は、パス名の展開との競合を避けるために必要です。 subscript_が @ または'の場合、単語は_name_のすべてのメンバーに展開されます。 これらの添え字は、単語が二重引用符で囲まれている場合にのみ異なります。 単語が二重引用符で囲まれている場合、$ \ {' name _ []}は IFS 特殊変数の最初の文字と$ \ {_ name _ [@]}で区切られた各配列メンバーの値を持つ単一の単語に展開されます。 name_の各要素を個別の単語に展開します。 配列メンバーがない場合、$ \ { name _ [@]}は何にも展開されません。 二重引用符で囲まれた展開が単語内で行われる場合、最初のパラメータの展開は元の単語の最初の部分と結合され、最後のパラメータの展開は元の単語の最後の部分と結合されます。 これは、特殊パラメーターおよび *@ の展開に類似しています(上記の link:#17 [特殊パラメーター] を参照)。 $ \ {#_ name _ [_ subscript_]}は$ \ {_ name _ [_ subscript_]}の長さに拡張されます。 _subscript_が**または *@ の場合、展開は配列内の要素の数になります。 添え字なしで配列変数を参照することは、要素ゼロを参照することと同等です。
拡張
ブレース展開チルド展開パラメータおよび変数展開コマンド置換算術展開ワード分割パス名展開
展開の順序は、ブレース展開、チルダ展開、パラメータ、変数および算術展開、コマンド置換(左から右に行われます)、単語分割、およびパス名展開です。
それをサポートできるシステムでは、追加の拡張機能が利用可能です:process substitution。
展開の単語数を変更できるのは、ブレース展開、単語分割、およびパス名展開のみです。他の展開は、単一の単語を単一の単語に展開します。 これに対する唯一の例外は、上記で説明した「 $ @ 」と「* $ \ { name [@]} 」の展開です( *link:#15 [PARAMETERS] を参照)。
ブレース拡張
_link:#21 [ブレース展開] _は、任意の文字列を生成するメカニズムです。 このメカニズムは_pathname expansion_に似ていますが、生成されたファイル名が存在する必要はありません。 中括弧で展開されるパターンは、オプションの_preamble_の形式を取り、一連のコンマ区切りの文字列または中括弧のペア間のシーケンス式の後にオプションの_postscript_が続きます。 プリアンブルは中括弧内に含まれる各文字列の前に付けられ、その後、結果の各文字列にポストスクリプトが追加され、左から右に拡張されます。
ブレース展開は入れ子にすることができます。 展開された各文字列の結果はソートされません。左から右の順序が保持されます。 たとえば、a \ {* d、c、b *} eは「ade ace abe」に展開されます。
シーケンス式の形式は** \ {* x .. y } *です。ここで、_x_および_y_は整数または単一文字です。 整数を指定すると、式は_x_から_y_までの各数値に展開されます。 文字が指定されると、式は_x_と_y_の間の辞書式に各文字に展開されます。 _x_と_y_は両方とも同じタイプでなければならないことに注意してください。
ブレース展開は、他の展開の前に実行され、他の展開に特別な文字は結果に保存されます。 それは厳密にテキストです。 Bash は、展開のコンテキストまたは中括弧間のテキストに構文解釈を適用しません。
正しく形成されたブレース展開には、引用符で囲まれていない開始および終了ブレースと、引用符で囲まれていないコンマまたは有効なシーケンス式が少なくとも1つ含まれている必要があります。 誤って形成されたブレースの展開は変更されません。 * \ {または、は、中括弧式の一部と見なされないように、バックスラッシュで引用できます。 パラメータ展開との競合を避けるため、文字列 $ \ {*はブレース展開の対象と見なされません。
このコンストラクトは、通常、生成される文字列の共通プレフィックスが上記の例よりも長い場合の省略形として使用されます。
mkdir/usr/local/src/bash/\ {old、new、dist、bugs}またはchown root/usr/\{ucb/\{ex,edit},lib/\{ex?.?*,how_ex}}
ブレースの拡張により、 sh の履歴バージョンとのわずかな非互換性が生じます。 sh は、語の一部として現れる中括弧を特別に扱わず、出力にそれらを保存します。 Bash は、ブレース展開の結果として単語からブレースを削除します。 たとえば、 sh に_file \ {1,2} _として入力された単語は、出力に同じように表示されます。 bash による展開後、同じ単語が_file1 file2_として出力されます。 sh との厳密な互換性が必要な場合は、 + B オプションで bash を起動するか、 set コマンドの + B オプションでブレース展開を無効にします(以下の* SHELL BUILTINコマンド*を参照)。
チルダ拡張
単語が引用符で囲まれていないチルダ文字(「〜」)で始まる場合、最初の引用符で囲まれていないスラッシュ(または引用符で囲まれていないスラッシュがない場合はすべての文字)に先行するすべての文字は、_tilde-prefix_と見なされます。 チルダプレフィックス内の文字が引用されていない場合、チルダに続くチルダプレフィックス内の文字は、可能な_login name_として扱われます。 このログイン名がヌル文字列の場合、チルダはシェルパラメータ HOME の値に置き換えられます。 HOME が設定されていない場合、シェルを実行しているユーザーのホームディレクトリが代わりに使用されます。 それ以外の場合、チルダプレフィックスは、指定されたログイン名に関連付けられたホームディレクトリに置き換えられます。
チルダプレフィックスが「〜」の場合、シェル変数 *PWD* の値がチルダプレフィックスを置き換えます。 チルダ接頭辞が「〜-」の場合、シェル変数 *OLDPWD* の値が設定されている場合、その値が置換されます。 チルダプレフィックスのチルダに続く文字が数字の_N_で構成され、オプションで「」または「-」が前に付いている場合、チルダプレフィックスは、表示されるディレクトリスタックの対応する要素に置き換えられます。ティルデプレフィックスを引数として呼び出された dirs ビルトインによって。 チルダプレフィックスのチルダに続く文字が、先頭に「」または「-」のない数字で構成されている場合、「」が想定されます。
ログイン名が無効であるか、チルダ展開が失敗した場合、単語は変更されません。
:*または最初の *= の直後に、引用符で囲まれていないチルダプレフィックスがないか、各変数の割り当てがチェックされます。 これらの場合、チルダ展開も実行されます。 その結果、 PATH 、 MAILPATH 、および CDPATH への割り当てにチルダ付きのファイル名を使用でき、シェルは展開された値を割り当てます。
パラメータ拡張
「 $ 」文字は、パラメータ展開、コマンド置換、または算術展開を導入します。 展開されるパラメータ名またはシンボルは中括弧で囲むことができます。これらはオプションですが、展開される変数を、名前の一部として解釈される可能性のある直後の文字から保護します。
中かっこを使用する場合、一致する終了中かっこは、バックスラッシュまたは引用符で囲まれた文字列内で、埋め込まれた算術展開、コマンド置換、またはパラメータ展開内ではない最初の「*} *」です。
Tag
説明
$ \ {_ parameter_}
_parameter_の値が置換されます。 _parameter_が2桁以上の定位置パラメーターである場合、または_parameter_の後に名前の一部として解釈されない文字が続く場合、中括弧が必要です。
parameter_の最初の文字が感嘆符である場合、変数間接指定のレベルが導入されます。 Bash は、残りの_parameter_から形成された変数の値を変数の名前として使用します。次に、この変数が展開され、その値が_parameter_自体の値ではなく、残りの置換で使用されます。 これは、_indirect expansion_と呼ばれます。 これの例外は、以下で説明する$ \ {! prefix_ *}および$ \ {! name [_ @ _]}の展開です。 感嘆符は、間接指定を導入するために、左中括弧のすぐ後になければなりません。
以下の各ケースでは、_word_はチルダ展開、パラメータ展開、コマンド置換、算術展開の対象となります。 サブストリング拡張を実行しない場合、 bash は未設定またはヌルのパラメーターをテストします。コロンを省略すると、設定されていないパラメーターに対してのみテストが行われます。
$ \ {parameter :- _ word_}
デフォルト値を使用。 _parameter_が未設定またはnullの場合、_word_の展開が置き換えられます。 それ以外の場合は、_parameter_の値が置換されます。
$ \ {parameter := _ word_}
デフォルト値の割り当て。 _parameter_が未設定またはヌルの場合、_word_の展開が_parameter_に割り当てられます。 その後、_parameter_の値が置き換えられます。 位置パラメータと特殊パラメータは、この方法では割り当てられません。
$ \ {parameter :? _ word_}
$ \ {parameter :+ _ word_}
代替値を使用。 _parameter_がヌルまたは未設定の場合、何も置き換えられません。
$ \ {parameter :* _ offset_} $ \ {parameter : offset *: _ length_}
サブストリング拡張。 offset_で指定された文字から開始して、_parameter_の_length_文字まで拡張します。 _length_が省略された場合、_offset_で指定された文字から始まる_parameter_のサブストリングに展開されます。 _length_および_offset_は算術式です(参照 * 算術評価 以下)。 _length_は、ゼロ以上の数に評価される必要があります。 _offset_がゼロより小さい数値に評価される場合、その値は_parameter_の値の末尾からのオフセットとして使用されます。 _parameter_が @ の場合、結果は_offset_で始まる_length_位置パラメータです。 _parameter_が@または*でインデックス付けされた配列名の場合、結果は$ \ { parameter _ [_ offset_]}で始まる配列の_length_メンバーになります。 負の_offset_は、指定された配列の最大インデックスよりも大きいものに関連して取得されます。 :-展開と混同しないように、負のオフセットは少なくとも1つのスペースでコロンから分離する必要があることに注意してください。 位置パラメータを使用しない限り、部分文字列のインデックス付けはゼロから始まります。その場合、インデックス付けは1から始まります。
$ \ {!* prefix'''} $ \ {*! prefix @ *}
名前が_prefix_で始まる変数の名前に展開され、 IFS 特殊変数の最初の文字で区切られます。
$ \ {! name [_ @ ]} $ \ {*! name [ _]}
_name_が配列変数の場合、_name_で割り当てられた配列インデックス(キー)のリストに展開します。 _name_が配列でない場合、_name_が設定されている場合は0に展開され、そうでない場合はnullに展開されます。 _ @ _が使用され、展開が二重引用符で囲まれている場合、各キーは個別の単語に展開されます。
$ \ {# parameter}
_parameter_の値の文字の長さが置き換えられます。 _parameter_が * or @ 、置換される値は位置パラメータの数です。 _parameter_が添え字付きの配列名である場合 * or @ 、置換される値は配列内の要素の数です。
$ \ {parameter *# _ word_} $ \ {parameter ## *_ word_}
_word_は、パス名展開と同様にパターンを生成するために展開されます。 パターンが_parameter_の値の先頭に一致する場合、展開の結果は、最短一致パターン( * # の場合)または最長一致パターン( ## * ケース)が削除されました。 _parameter_が @' または'の場合、パターン削除操作は各位置パラメーターに順番に適用され、展開は結果のリストになります。 _parameter_が *@ または*を添え字とする配列変数である場合、パターン削除操作は配列の各メンバーに順番に適用され、展開は結果のリストになります。
$ \ {parameter *% _ word_} $ \ {parameter %% *_ word_}
_word_は、パス名展開と同様にパターンを生成するために展開されます。 パターンが_parameter_の展開された値の末尾部分と一致する場合、展開の結果は、最短の一致パターン( * %* の場合)または最長の一致パターン( ' ' %%' ' 'ケース)が削除されました。 _parameter_が @ または'の場合、パターン削除操作は各位置パラメーターに順番に適用され、展開は結果のリストになります。 _parameter_が *@ または*を添え字とする配列変数である場合、パターン削除操作は配列の各メンバーに順番に適用され、展開は結果のリストになります。
$ \ {parameter * / pattern / * _ string_}
_pattern_は、パス名展開と同様にパターンを生成するために展開されます。 _Parameter_が展開され、_pattern_の値に対する最長一致が_string_に置き換えられます。 \ Ipatternが /' で始まる場合、_pattern_のすべての一致は_string_に置き換えられます。 通常は最初のマッチだけが置き換えられます。 _pattern_が*#で始まる場合、_parameter_の展開された値の先頭で一致する必要があります。 _pattern_が%で始まる場合、_parameter_の展開された値の最後で一致する必要があります。 _string_がヌルの場合、_pattern_の一致は削除され、_pattern_に続く */ は省略できます。 _parameter_が @ または'の場合、置換操作は各定位置パラメーターに順番に適用され、展開は結果のリストになります。 _parameter_が *@ または*を添え字とする配列変数である場合、置換操作は配列の各メンバーに順番に適用され、展開は結果のリストになります。
コマンド置換
_link:#24 [Command substitution] _は、コマンドの出力がコマンド名を置き換えることを許可します。 2つの形式があります。
$(* command )または* ‘* command ’ *
古いスタイルのバッククォート形式の置換が使用される場合、バックスラッシュは、 $ 、* ’、または *\ が続く場合を除き、リテラルの意味を保持します。 バックスラッシュを前に付けない最初のバッククォートは、コマンド置換を終了させます。 $(_ command_)形式を使用する場合、括弧で囲まれたすべての文字がコマンドを構成します。特別に扱われるものはありません。
コマンド置換はネストできます。 バッククォート形式を使用するときにネストするには、バックスラッシュで内側のバッククォートをエスケープします。
置換が二重引用符で囲まれている場合、結果に対して単語分割とパス名展開は実行されません。
算術展開
算術展開により、算術式の評価と結果の置換が可能になります。 算術展開の形式は次のとおりです。
- $((* expression ))*
_expression_は二重引用符内にあるかのように扱われますが、括弧内の二重引用符は特別に扱われません。 式内のすべてのトークンは、パラメーターの展開、文字列の展開、コマンドの置換、および引用の削除を受けます。 算術展開はネストできます。
評価は、算術評価*の下にリストされているルールに従って実行されます。 _expression_が無効な場合、 *bash は失敗を示すメッセージを出力し、置換は行われません。
プロセス置換
link:#26 [プロセス置換] _は、名前付きパイプ(_FIFOs)または /dev/fd メソッドで開いているファイルに名前を付けることをサポートするシステムでサポートされています。 <(* list )または>( list )の形式を取ります。 プロセス_list_は、_FIFO_または */dev/fd のファイルに接続された入力または出力で実行されます。 このファイルの名前は、展開の結果として現在のコマンドに引数として渡されます。 >(* list )フォームが使用される場合、ファイルへの書き込みは_list_の入力を提供します。 <( list )*形式を使用する場合、引数として渡されたファイルを読み取って_list_の出力を取得する必要があります。
使用可能な場合、プロセス置換は、パラメーターおよび変数の展開、コマンドの置換、および算術展開と同時に実行されます。
単語分割
シェルは、_word splitting_の二重引用符内で発生しなかったパラメーター展開、コマンド置換、および算術展開の結果をスキャンします。
シェルは IFS の各文字を区切り文字として扱い、他の展開の結果をこれらの文字の単語に分割します。 IFS が設定されていない場合、またはその値がデフォルトの <space> <tab> <newline> である場合、 IFS 文字のシーケンスは単語を区切るのに役立ちます。 IFS にデフォルト以外の値がある場合、空白文字が IFS の値にある限り、単語の先頭と末尾にある空白文字 space と tab のシーケンスは無視されます。 ( IFS 空白文字)。 IFS ホワイトスペースではない IFS 内の任意の文字、および隣接する IFS ホワイトスペース文字は、フィールドを区切ります。 一連の IFS 空白文字も区切り文字として扱われます。 IFS の値がヌルの場合、単語分割は発生しません。
明示的なヌル引数( "" または \(aq \(aq )は保持されます。 値を持たないパラメーターを展開した結果、引用符で囲まれていない暗黙的なNULL引数は削除されます。 値のないパラメーターが二重引用符で囲まれている場合、引数はnullになり、保持されます。
展開が行われない場合、分割は実行されないことに注意してください。
パス名の展開
単語の分割後、-f *オプションが設定されていない限り、 *bash は各単語の文字**、?、および [をスキャンします。 これらの文字のいずれかが表示される場合、単語は_pattern_と見なされ、パターンに一致するファイル名のアルファベット順にソートされたリストに置き換えられます。 一致するファイル名が見つからず、シェルオプション *nullglob が無効になっている場合、単語は変更されません。 nullglob オプションが設定されていて、一致するものが見つからない場合、単語は削除されます。 failglob シェルオプションが設定されていて、一致するものが見つからない場合、エラーメッセージが出力され、コマンドは実行されません。 シェルオプション nocaseglob が有効になっている場合、アルファベット文字の大文字と小文字を区別せずに一致が実行されます。 パターンがパス名の展開に使用される場合、シェルオプション dotglob が設定されていない限り、名前の先頭またはスラッシュの直後にある文字「」を明示的に一致させる必要があります。 パス名と一致する場合、スラッシュ文字は常に明示的に一致する必要があります。 それ以外の場合、「 '。」」文字は特別に扱われません。 *nocaseglob 、 nullglob 、 failglob 、および dotglob シェルオプションの説明については、* SHELL BUILTINコマンド*の下の shopt の説明を参照してください。
パターンマッチング
以下に説明する特殊パターン文字以外のパターンに現れる文字は、それ自体と一致します。 NUL文字はパターン内に出現しない場合があります。 バックスラッシュは次の文字をエスケープします。一致する場合、エスケープするバックスラッシュは破棄されます。 特別なパターン文字は、文字通り一致する場合は引用符で囲む必要があります。
特殊パターン文字には次の意味があります。
Tag
説明
null文字列を含む任意の文字列に一致します。
?
任意の1文字に一致します。
囲まれた文字のいずれかに一致します。 ハイフンで区切られた文字のペアは、range expression;を表します。現在のロケールの照合シーケンスと文字セットを使用して、これらの2文字間でソートされるすべての文字が一致します。 * [に続く最初の文字が!または *^ である場合、囲まれていないすべての文字が一致します。 範囲式の文字のソート順は、現在のロケールと、設定されている場合は LC_COLLATE シェル変数の値によって決まります。 A 最初または最後の文字として含めると一致する場合があります セットで。 ] *は、セットの最初の文字として含めると一致する場合があります。
[および] 内で、_character classes_は構文* [:* class :] *を使用して指定できます。ここで、_class_はPOSIX標準で定義されている次のクラスのいずれかです。
alnum alpha ascii blank cntrl digit graph lower print punct space upper word xdigit文字クラスは、そのクラスに属するすべての文字と一致します。 word *文字クラスは、文字、数字、および文字_と一致します。
[および] 内では、構文 [= c =] *を使用して_equivalence class_を指定できます。この構文は、文字と同じ照合ウェイト(現在のロケールで定義されている) c。
[および] 内では、構文* [。* symbol 。] *は照合シンボル_symbol_と一致します。
Tag
説明
*?( pattern-list )*
指定されたパターンの0回または1回の出現に一致します
*(* pattern-list )*
指定されたパターンのゼロ個以上の出現に一致します
- +(* pattern-list )*
指定されたパターンの1つ以上の出現に一致します
- @(* pattern-list )*
指定されたパターンの1つに一致します
*!( pattern-list )*
指定されたパターンの1つを除くすべてに一致します
見積削除
上記の展開の後、上記の展開のいずれにも起因しない文字 \ 、 \(aq 、および* "*のすべての引用符で囲まれていないオカレンスが削除されます。
リダイレクション
redirectedsimpleコマンドコマンド
以下の説明では、ファイル記述子番号が省略され、リダイレクト演算子の最初の文字が* <*である場合、リダイレクトは標準入力(ファイル記述子0)を参照します。 リダイレクト演算子の最初の文字が*> *の場合、リダイレクトは標準出力(ファイル記述子1)を参照します。
以下の説明でリダイレクト演算子に続く単語は、特に明記しない限り、ブレース展開、チルダ展開、パラメータ展開、コマンド置換、算術展開、引用削除、パス名展開、および単語分割の対象です。 複数の単語に展開すると、 bash はエラーを報告します。
リダイレクトの順序は重要であることに注意してください。 例えば、
ls > *dirlist 2 >& *1
コマンドの実行中に、標準出力と標準エラーの両方をファイル_dirlist_に送信します
ls 2* >& 1 > * dirlist
標準出力が_dirlist_にリダイレクトされる前に標準エラーが標準出力として複製されたため、標準出力のみをファイル_dirlist_に送信します。
Tag
説明
- /dev/fd/ * fd
_fd_が有効な整数の場合、ファイル記述子_fd_は複製されます。
ファイル記述子0が重複しています。
ファイル記述子1が重複しています。
ファイル記述子2が重複しています。
- /dev/tcp/ * host/_ port_
_host_が有効なホスト名またはインターネットアドレスであり、_port_が整数のポート番号またはサービス名である場合、 bash は対応するソケットへのTCP接続を開こうとします。
- /dev/udp/ * host/_ port_
_host_が有効なホスト名またはインターネットアドレスであり、_port_が整数のポート番号またはサービス名である場合、 bash は対応するソケットへのUDP接続を開こうとします。
ファイルのオープンまたは作成に失敗すると、リダイレクトが失敗します。
9を超えるファイル記述子を使用するリダイレクトは、シェルが内部で使用するファイル記述子と競合する可能性があるため、注意して使用する必要があります。
入力のリダイレクト
入力をリダイレクトすると、_word_の展開の結果として名前が付けられたファイルが、ファイル記述子_n_で読み取るために開かれます。_n_が指定されていない場合は、標準入力(ファイル記述子0)で開かれます。
入力をリダイレクトするための一般的な形式は次のとおりです。
<word
出力のリダイレクト
出力のリダイレクトにより、_word_の拡張に起因する名前のファイルが、ファイル記述子_n_に書き込むために開かれます。または、_n_が指定されていない場合は標準出力(ファイル記述子1)に開かれます。 ファイルが存在しない場合は作成されます。存在する場合は、ゼロサイズに切り捨てられます。
出力をリダイレクトするための一般的な形式は次のとおりです。
>word
リダイレクション演算子が*> で、 *set ビルトインの noclobber オプションが有効になっている場合、_word_の拡張に起因する名前のファイルが存在し、通常のファイルである場合、リダイレクションは失敗します。 リダイレクト演算子が*> | であるか、リダイレクト演算子が> で、 *set 組み込みコマンドの noclobber オプションが有効になっていない場合、_word_で指定されたファイルが存在する場合でもリダイレクトが試行されます。
リダイレクトされた出力の追加
この方法で出力をリダイレクトすると、word_の拡張に起因する名前のファイルが開かれ、_n_が指定されていない場合はファイル記述子_n、または標準出力(ファイル記述子1)に追加されます。 ファイルが存在しない場合は作成されます。
出力を追加するための一般的な形式は次のとおりです。
>>word
標準出力と標準エラーのリダイレクト
標準出力と標準エラーをリダイレクトするには、2つの形式があります。
&> wordおよび>& word
2つの形態のうち、最初のものが好ましい。 これは意味的に等価です
> * word 2 *>& 1
Here Documents
このタイプのリダイレクトは、_word_のみを含む行(末尾ブランクなし)が見つかるまで、現在のソースから入力を読み取るようにシェルに指示します。 その時点までに読み取られたすべての行が、コマンドの標準入力として使用されます。
ヒアドキュメントの形式は次のとおりです。
<<[-]word here-document delimiter |
_word_では、パラメーター展開、コマンド置換、算術展開、またはパス名展開は実行されません。 _word_の文字が引用符で囲まれている場合、_delimiter_は_word_で引用符を削除した結果であり、ヒアドキュメントの行は展開されません。 _word_が引用符で囲まれていない場合、ヒアドキュメントのすべての行は、パラメーター展開、コマンド置換、および算術展開の対象となります。 後者の場合、文字シーケンス \ <newline> は無視され、 \ を使用して文字 \ 、 $ 、* ’*を引用する必要があります。
リダイレクト演算子が* <←*の場合、すべての先行タブ文字は入力行と_delimiter_を含む行から削除されます。 これにより、シェルスクリプト内のヒアドキュメントを自然な方法でインデントできます。
Here Strings
<<<word |
_word_は展開され、標準入力でコマンドに提供されます。
ファイル記述子の複製
リダイレクト演算子
<&word
入力ファイル記述子を複製するために使用されます。 _word_が1桁以上に拡張される場合、_n_で示されるファイル記述子は、そのファイル記述子のコピーになります。 _word_の数字が入力用に開いているファイル記述子を指定していない場合、リダイレクトエラーが発生します。 _word_が*-*と評価された場合、ファイル記述子_n_は閉じられます。 _n_が指定されていない場合、標準入力(ファイル記述子0)が使用されます。
オペレーター
>&word
同様に、出力ファイル記述子を複製するために使用されます。 _n_が指定されていない場合、標準出力(ファイル記述子1)が使用されます。 _word_の数字が出力用に開いているファイル記述子を指定していない場合、リダイレクトエラーが発生します。 特別な場合として、_n_が省略され、_word_が1桁以上に拡張されない場合、標準出力と標準エラーは前述のようにリダイレクトされます。
ファイル記述子の移動
リダイレクト演算子
<&digit*-*
ファイル記述子_digit_をファイル記述子_n_に、または_n_が指定されていない場合は標準入力(ファイル記述子0)に移動します。 _digit_は、_n_に複製された後に閉じられます。
同様に、リダイレクト演算子
>&digit*-*
ファイル記述子_digit_をファイル記述子_n_に、または_n_が指定されていない場合は標準出力(ファイル記述子1)に移動します。
読み取りおよび書き込み用のファイル記述子を開く
リダイレクト演算子
<>word
名前が_word_の拡張であるファイルを、ファイル記述子_n_、または_n_が指定されていない場合はファイル記述子0での読み取りと書き込みの両方のために開きます。 ファイルが存在しない場合は作成されます。
エイリアス
link:#36 [エイリアス] * aliasunaliasSHELL組み込みコマンド/$ ‘= metacharacters lsls -Fbash * _ blank_
エイリアスは alias コマンドで作成およびリストされ、 unalias コマンドで削除されます。
置換テキストで引数を使用するメカニズムはありません。 引数が必要な場合は、シェル関数を使用する必要があります(以下の link:#37 [FUNCTIONS] を参照)。
エイリアスの定義と使用に関する規則はやや混乱しています。 Bash は、その行でコマンドを実行する前に、少なくとも1行の入力を常に読み取ります。 エイリアスは、コマンドが実行されたときではなく、読み取られたときに展開されます。 したがって、別のコマンドと同じ行に表示されるエイリアス定義は、入力の次の行が読み取られるまで有効になりません。 その行のエイリアス定義に続くコマンドは、新しいエイリアスの影響を受けません。 この動作は、関数が実行されるときにも問題になります。 エイリアスは、関数定義自体が複合コマンドであるため、関数の実行時ではなく、関数定義の読み取り時に展開されます。 結果として、関数で定義されたエイリアスは、その関数が実行されるまで利用できません。 安全のため、エイリアス定義は常に別の行に配置し、複合コマンドでは alias を使用しないでください。
ほとんどすべての目的で、エイリアスはシェル関数によって置き換えられます。
関数
関数のローカル変数は、 local 組み込みコマンドで宣言できます。 通常、変数とその値は、関数とその呼び出し元の間で共有されます。
組み込みコマンド return が関数で実行されると、関数は完了し、関数呼び出しの後の次のコマンドで実行が再開されます。 RETURN トラップに関連付けられたコマンドは、実行が再開される前に実行されます。 関数が完了すると、位置パラメーターと特殊パラメーター*#*の値は、関数の実行前の値に復元されます。
関数名と定義は、 declare または typeset 組み込みコマンドの -f オプションでリストできます。 declare または typeset の -F オプションは、関数名のみをリストします( extdebug シェルオプションが有効な場合、オプションでソースファイルと行番号もリストします)。 関数をエクスポートして、サブシェルが export ビルトインの -f オプションで自動的に定義されるようにすることができます。 関数定義は、 unset ビルトインの -f オプションを使用して削除できます。 同じ名前のシェル関数と変数は、シェルの子に渡される環境で複数の同じ名前のエントリになる可能性があることに注意してください。 これが問題を引き起こす可能性がある場合には注意が必要です。
関数は再帰的かもしれません。 再帰呼び出しの数に制限はありません。
算術評価
Tag
説明
- id ++ _id _--
可変ポストインクリメントおよびポストデクリメント
- ++ * id --_ id_
可変の事前インクリメントと事前デクリメント
- +*
単項マイナスとプラス
! ~
論理的およびビットごとの否定
- **
べき乗
/%
乗算、除算、剰余
- +-*
加算、減算
左右のビット単位シフト
比較
平等と不平等
&
ビットごとのAND
^
ビットごとの排他的OR
|
ビットごとのOR
&&
論理積
||
論理和
- expr?_ expr : expr_
条件演算子
割り当て
- *expr1、expr2
コンマ
integer* 宣言-i *
先頭が0の定数は、8進数として解釈されます。 先頭の0xまたは0Xは16進数を示します。 それ以外の場合、数値は[base #] nの形式を取ります。ここで、_base_は算術基数を表す2〜64の10進数で、_n_はその基数の数値です。 _base#_を省略すると、ベース10が使用されます。 9より大きい数字は、小文字、大文字、@、および_の順に表されます。 _base_が36以下の場合、10〜35の数字を表すために、小文字と大文字を区別なく使用できます。
演算子は優先順位の順に評価されます。 括弧内の部分式が最初に評価され、上記の優先規則を上書きする場合があります。
条件式
- [[test [** file/dev/fd/nnfile/dev/stdin/dev/stdout/dev/stderr
特に指定のない限り、ファイルを操作するプライマリーはシンボリックリンクをたどり、リンク自体ではなくリンクのターゲットを操作します。
Tag
説明
- -ファイル_
_file_が存在する場合はtrue。
_file_が存在し、ブロック特殊ファイルである場合はtrue。
_file_が存在し、文字特殊ファイルである場合は真。
_file_が存在し、ディレクトリである場合はtrue。
_file_が存在する場合はtrue。
_file_が存在し、通常のファイルであれば真。
_file_が存在し、set-group-idである場合はtrue。
_file_が存在し、シンボリックリンクである場合はtrue。
_file_が存在し、その「スティッキー」ビットが設定されている場合はtrue。
_file_が存在し、名前付きパイプ(FIFO)である場合はtrue。
_file_が存在し、読み取り可能な場合はtrue。
_file_が存在し、サイズがゼロより大きい場合はtrue。
ファイル記述子_fd_が開いており、端末を参照している場合は真。
_file_が存在し、set-user-idビットが設定されている場合はtrue。
_file_が存在し、書き込み可能であれば真。
_file_が存在し、実行可能であれば真。
_file_が存在し、有効なユーザーIDによって所有されている場合はtrue。
_file_が存在し、有効なグループIDによって所有されている場合はtrue。
_file_が存在し、シンボリックリンクである場合はtrue。
_file_が存在し、ソケットであれば真。
_file_が存在し、最後に読み取られてから変更されている場合はtrue。
file1- nt file2
_file1_が_file2_より新しい(変更日による)場合、または_file1_が存在し、file2が存在しない場合は真。
file1- ot file2
_file1_が_file2_より古い場合、または_file2_が存在し、_file1_が存在しない場合はtrue。
file1 -ef file2
_file1_と_file2_が同じデバイスとiノード番号を参照している場合は真。
シェルオプション_optname_が有効な場合はtrue。 以下の set ビルトインの -o オプションの説明の下にあるオプションのリストを参照してください。
_string_の長さがゼロであれば真。
string -n string
_string_の長さがゼロ以外であれば真。
string1 == string2
文字列が等しければ真。 = は、厳密なPOSIX準拠のために、 == の代わりに使用できます。
string1 *!= *string2
文字列が等しくない場合は真。
string1* < *string2
_string1_が現在のロケールで辞書式に_string2_の前にソートされる場合はtrue。
string1* > *string2
_string1_が現在のロケールで辞書式に_string2_の後にソートされる場合はtrue。
arg1* OP * arg2
簡単なコマンド拡張
Tag
説明
1.
パーサーが変数割り当て(コマンド名の前にあるもの)およびリダイレクトとしてマークした単語は、後の処理のために保存されます。
2.
変数の割り当てまたはリダイレクトではない単語は展開されます。 展開後に単語が残っている場合、最初の単語がコマンドの名前であり、残りの単語が引数になります。
3.
リダイレクトは、上記の link:#30 [REDIRECTION] で説明されているように実行されます。
4.
各変数割り当ての = の後のテキストは、変数に割り当てられる前に、チルダ展開、パラメーター展開、コマンド置換、算術展開、および引用符の削除が行われます。
コマンド名がない場合、リダイレクトが実行されますが、現在のシェル環境には影響しません。 リダイレクトエラーが発生すると、コマンドはゼロ以外のステータスで終了します。
展開後にコマンド名が残っている場合、実行は以下のように進行します。 それ以外の場合、コマンドは終了します。 拡張の1つにコマンド置換が含まれていた場合、コマンドの終了ステータスは、最後に実行されたコマンド置換の終了ステータスです。 コマンドの置換がなかった場合、コマンドはステータス0で終了します。
コマンド実行
コマンド名にスラッシュが含まれていない場合、シェルはそれを見つけようとします。 その名前のシェル関数が存在する場合、その関数は上記の link:#37 [FUNCTIONS] で説明されているように呼び出されます。 名前が関数と一致しない場合、シェルはシェル組み込みコマンドのリストでその名前を検索します。 一致が見つかった場合、そのビルトインが呼び出されます。
名前がシェル関数でも組み込み関数でもなく、スラッシュが含まれていない場合、 bash は PATH の各要素で、その名前の実行可能ファイルを含むディレクトリを検索します。 Bash は、ハッシュテーブルを使用して実行可能ファイルのフルパス名を記憶します(下記の* SHELL BUILTINコマンド*の hash を参照)。 PATH 内のディレクトリの完全検索は、コマンドがハッシュテーブルで見つからない場合にのみ実行されます。 検索が失敗した場合、シェルはエラーメッセージを出力し、終了ステータス127を返します。
検索が成功した場合、またはコマンド名に1つ以上のスラッシュが含まれている場合、シェルは指定されたプログラムを別の実行環境で実行します。 引数0は指定された名前に設定され、コマンドの残りの引数は、指定された引数があれば設定されます。
ファイルが実行可能形式ではなく、ファイルがディレクトリではないためにこの実行が失敗した場合、シェルコマンドを含むファイルである_shell script_と見なされます。 サブシェルが生成されて実行されます。 このサブシェルはそれ自体を再初期化するため、新しいシェルがスクリプトを処理するために呼び出されたかのようになります。ただし、親が記憶しているコマンドの場所( SHELL BUILTIN COMMANDS の下の hash を参照)は保持されます。子供によって。
プログラムが*#!*で始まるファイルの場合、最初の行の残りの部分はプログラムのインタープリターを指定します。 シェルは、この実行可能形式自体を処理しないオペレーティングシステムで指定されたインタープリターを実行します。 インタープリターへの引数は、プログラムの最初の行のインタープリター名に続く単一のオプションの引数で構成され、その後にプログラムの名前、コマンド引数(ある場合)が続きます。
コマンド実行環境
実行環境
Tag
説明
o
o
o
o
o
変数の割り当てによって、または set で設定されるか、環境内のシェルの親から継承されるシェルパラメーター
o
実行中に定義されるか、環境内のシェルの親から継承されたシェル関数
o
起動時(デフォルトまたはコマンドライン引数のいずれか)または set により有効化されるオプション
o
o
o
バックグラウンドジョブの値、 $$ の値、 $ PPID の値など、さまざまなプロセスID
組み込み関数またはシェル関数以外の単純なコマンドを実行する場合、次から構成される別の実行環境で呼び出されます。 特に明記しない限り、値はシェルから継承されます。
o
シェルの開いているファイル、およびコマンドへのリダイレクトによって指定された変更と追加
o
現在の作業ディレクトリ
o
ファイル作成モードマスク
o
エクスポート用にマークされたシェル変数および関数と、コマンド用にエクスポートされた環境とともに渡される変数
o
シェルによってキャッチされたトラップは、シェルの親から継承された値にリセットされ、シェルによって無視されたトラップは無視されます
コマンド置換、括弧でグループ化されたコマンド、および非同期コマンドは、シェル環境の複製であるサブシェル環境で呼び出されます。ただし、シェルによってキャッチされたトラップは、呼び出し時にシェルが親から継承した値にリセットされます。 パイプラインの一部として呼び出される組み込みコマンドは、サブシェル環境でも実行されます。 サブシェル環境に加えられた変更は、シェルの実行環境に影響を与えることはできません。
コマンドの後に*&*が続き、ジョブ制御がアクティブでない場合、コマンドのデフォルトの標準入力は空のファイル_/dev/null_です。 それ以外の場合、呼び出されたコマンドは、リダイレクトによって変更された呼び出しシェルのファイル記述子を継承します。
環境
environmentnamevaluename
シェルは、環境を操作するいくつかの方法を提供します。 呼び出し時に、シェルは独自の環境をスキャンし、見つかった名前ごとにパラメーターを作成し、_export_の子プロセスに自動的にマークします。 実行されたコマンドは環境を継承します。 export および declare -x コマンドを使用すると、パラメーターおよび関数を環境に追加したり、環境から削除したりできます。 環境内のパラメーターの値が変更されると、新しい値が環境の一部になり、古い値が置き換えられます。 実行されたコマンドによって継承される環境は、シェルの初期環境で構成されます。シェルの値はシェルで変更でき、 unset コマンドで削除されたペアと、 export および declare -x コマンドによる追加を除きます。
上記の link:#15 [PARAMETERS] で説明されているように、_simple command_または関数の環境は、パラメータの割り当てをプレフィックスとして付けることで一時的に拡張できます。 これらの割り当てステートメントは、そのコマンドによって認識される環境にのみ影響します。
終了ステータス
N * bash * _ N_
コマンドが見つからない場合、コマンドを実行するために作成された子プロセスは、ステータス127を返します。 コマンドが見つかったが実行可能でない場合、戻りステータスは126です。
拡張またはリダイレクト中のエラーのためにコマンドが失敗した場合、終了ステータスはゼロより大きくなります。
シェル組み込みコマンドは、成功した場合はステータス0(true)を返し、実行中にエラーが発生した場合はゼロ以外(false)を返します。 すべての組み込み関数は、不正な使用を示すために終了ステータス2を返します。
信号
シェルは、 SIGHUP を受け取るとデフォルトで終了します。 終了する前に、対話型シェルは、実行中または停止中のすべてのジョブに SIGHUP を再送信します。 停止したジョブは SIGCONT に送信され、 SIGHUP を確実に受信します。 シェルが特定のジョブに信号を送信しないようにするには、 disown ビルトイン(下記の* SHELL BUILTINコマンドを参照)でジョブテーブルから削除するか、 disown -h を使用して SIGHUP を受信しないようにマークする必要があります。
ジョブ制御
Job controlsuspendresume * bash *
シェルは、_job_を各パイプラインに関連付けます。 現在実行中のジョブのテーブルを保持しており、 jobs コマンドでリストできます。 bash が非同期で(_background_で)ジョブを開始すると、次のような行が出力されます。
[1] 25647
このジョブはジョブ番号1であり、このジョブに関連付けられているパイプラインの最後のプロセスのプロセスIDは25647であることを示します。 単一のパイプライン内のすべてのプロセスは、同じジョブのメンバーです。 Bash は、_job_抽象化をジョブ制御の基礎として使用します。
ジョブ制御へのユーザーインターフェイスの実装を容易にするために、オペレーティングシステムは_現在の端末プロセスグループID_の概念を維持しています。 このプロセスグループ(プロセスグループIDが現在の端末プロセスグループIDと等しいプロセス)のメンバーは、 SIGINT などのキーボード生成シグナルを受信します。 これらのプロセスは、_foreground_にあると言われています。 _Background_プロセスは、プロセスグループIDが端末のものと異なるプロセスです。このようなプロセスは、キーボードで生成された信号の影響を受けません。 フォアグラウンドプロセスのみが端末からの読み取りまたは端末への書き込みを許可されます。 端末からの読み取り(書き込み)を試みるバックグラウンドプロセスには、端末ドライバから* SIGTTIN(SIGTTOU)*信号が送信されます。これは、キャッチされない限り、プロセスを一時停止します。
シェルでジョブを参照する方法はいくつかあります。 文字*%はジョブ名を表します。 ジョブ番号_n_は%n と呼ばれる場合があります。 ジョブは、開始に使用された名前の接頭辞を使用して参照されるか、またはコマンドラインに表示されるサブストリングを使用して参照されることもあります。 たとえば、%ce は停止した *ce ジョブを指します。 プレフィックスが複数のジョブに一致する場合、 bash はエラーを報告します。 一方、%?ce *を使用すると、コマンドラインに文字列 *ce を含むジョブが参照されます。 サブストリングが複数のジョブに一致する場合、 bash はエラーを報告します。 記号 %% および*%+ は、_current job_のシェルの概念を指します。これは、フォアグラウンドにあるかバックグラウンドで開始されている間に停止した最後のジョブです。 _previous job_は、%-を使用して参照できます。 現在のジョブのみがある場合、%-はシェルの現在のジョブの概念を指します。 ジョブに関する出力( *jobs コマンドの出力など)では、現在のジョブには常に + のフラグが付けられ、前のジョブには常に . 単一の%(付随するジョブ仕様なし)は、 今の仕事。
ジョブに名前を付けるだけで、ジョブをフォアグラウンドに取り込むことができます。%1 *は *‘‘ fg%1 ’’ の同義語で、ジョブ1をバックグラウンドからフォアグラウンドに取り込みます。 同様に、「「%1&」」*はバックグラウンドでジョブ1を再開します。これは、「 b
シェルは、ジョブの状態が変わるとすぐに学習します。 通常、 bash は、他の出力を中断しないように、ジョブのステータスの変化を報告する前にプロンプトを印刷するまで待機します。 set 組み込みコマンドの -b オプションが有効になっている場合、 bash はそのような変更をすぐに報告します。 SIGCHLD のトラップは、終了する各子に対して実行されます。
ジョブの停止中に bash を終了しようとすると、シェルは警告メッセージを出力します。 jobs コマンドを使用して、ステータスを検査できます。 介入コマンドなしで2回目の終了試行が行われた場合、シェルは別の警告を出力せず、停止したジョブは終了します。
催促
Tag
説明
\a
ASCIIベル文字(07)
\d
「平日月日」形式の日付(例:「火曜日5月26日」)
- \ D \ {** format}
format_は_strftime(3)に渡され、結果はプロンプト文字列に挿入されます。空の_format_は、ロケール固有の時刻表現になります。 中括弧が必要です
\e
ASCIIエスケープ文字(033)
\h
最初の「。」までのホスト名
\H
ホスト名
\j
現在シェルによって管理されているジョブの数
\l
シェルの端末デバイス名のベース名
\n
改行
\r
キャリッジリターン
\s
シェルの名前、 $ 0 のベース名(最後のスラッシュに続く部分)
\t
24時間HH:MM:SS形式の現在の時刻
\T
12時間HH:MM:SS形式の現在の時刻
\@
12時間の午前/午後形式の現在時刻
\A
24時間HH:MM形式の現在時刻
\u
現在のユーザーのユーザー名
\v
\V
\w
\W
現在の作業ディレクトリのベース名。チルダで省略された $ HOME
\!
このコマンドの履歴番号
\#
このコマンドのコマンド番号
\$
有効なUIDが0の場合は*#、それ以外の場合は *$
- \ * nnn
8進数_nnn_に対応する文字
\\
バックスラッシュ
\[
端末制御シーケンスをプロンプトに埋め込むために使用できる非印刷文字のシーケンスを開始します
\]
非印刷文字のシーケンスを終了します
通常、コマンド番号と履歴番号は異なります。コマンドの履歴番号は履歴リスト内の位置です。これには、履歴ファイルから復元されたコマンドが含まれる場合があります(以下の link:#53 [HISTORY] を参照)。コマンド番号は、現在のシェルセッション中に実行されるコマンドシーケンス内の位置です。 文字列がデコードされた後、 promptvars シェルオプションの値に従い、パラメーター展開、コマンド置換、算術展開、および引用符の削除によって展開されます( SHELL BUILTIN COMMANDS の shopt コマンドの説明を参照してください)以下)。
読み込まれた行
-noediting + o emacs + o visetSHELL組み込みコマンド
Readline表記法
このセクションでは、キーストロークを示すためにemacsスタイルの表記が使用されます。 制御キーはC-_key_で示されます。たとえば、C-nはControl-Nを意味します。 同様に、_meta_キーはM-_key_で示されるため、M-xはMeta-Xを意味します。 (_meta_キーのないキーボードでは、M-_x_はESC _x_を意味します。つまり、エスケープキーを押してから_x_キーを押します。 これにより、ESCが_metaプレフィックス_になります。 M-C-_x_の組み合わせはESC-Control-_x_を意味するか、Escキーを押してからControlキーを押しながら_x_キーを押します。
readlineコマンドには、数値の_arguments_を指定できます。これは通常、繰り返しカウントとして機能します。 ただし、引数の符号が重要な場合もあります。 順方向に作用するコマンド(たとえば、 kill-line )に負の引数を渡すと、そのコマンドは逆方向に作用します。 引数を指定した場合の動作がこれとは異なるコマンドを以下に示します。
コマンドが_killing_テキストとして記述されている場合、削除されたテキストは将来の検索に備えて保存されます(yanking)。 キルされたテキストは、_kill ring_に保存されます。 連続したキルにより、テキストは1つのユニットに蓄積され、一度にヤンクできます。 テキストをキルしないコマンドは、キルリング上のテキストチャンクを分離します。
Readline初期化
Readlineは、コマンドを初期化ファイル(inputrc_ファイル)に入れることによりカスタマイズされます。 このファイルの名前は、 INPUTRC 変数の値から取得されます。 その変数が設定されていない場合、デフォルトは〜/.inputrc_です。 readlineライブラリを使用するプログラムが起動すると、初期化ファイルが読み込まれ、キーバインディングと変数が設定されます。 readline初期化ファイルで許可されている基本的な構成要素はわずかです。 空白行は無視されます。 #*で始まる行はコメントです。 *$ で始まる行は、条件構造を示します。 他の行は、キーバインドと変数設定を示します。
デフォルトのキーバインディングは、_inputrc_ファイルで変更できます。 このライブラリを使用する他のプログラムは、独自のコマンドとバインディングを追加する場合があります。
たとえば、配置
M-Control-u:ユニバーサル引数またはC-Meta-u:_inputrc_へのユニバーサル引数は、M-C-uにreadlineコマンド_universal-argument_を実行させます。
次の記号文字名が認識されます:RUBOUT _、 DEL 、 ESC 、 LFD 、 NEWLINE 、 RET 、 RETURN 、 SPC 、 SPACE_、および_TAB_。
readlineでは、コマンド名に加えて、キーが押されたときに挿入される文字列(macro)にキーをバインドできます。
Readlineキーバインディング
_inputrc_ファイルのキーバインディングを制御する構文は単純です。 必要なのは、コマンドの名前またはマクロのテキストと、バインドするキーシーケンスです。 名前は、2つの方法のいずれかで指定できます:おそらく_Meta-_または_Control-_プレフィックスを持つシンボリックキー名として、またはキーシーケンスとして。
Control-u:ユニバーサル引数Meta-Rubout:Backward-kill-word Control-o: ">出力"
上記の例では、_C-u_は関数 universal-argument にバインドされ、_M-DEL_は関数 backward-kill-word にバインドされ、_C-o_は右手で表されるマクロを実行するようにバインドされます。側(つまり、テキスト「+> output +」を行に挿入します)。
2番目の形式の "keyseq" :_ function-name_または_macro _、 keyseq は、上記の keyname と異なり、シーケンス全体を二重引用符で囲んで指定することができます。 次の例のように、GNU Emacsスタイルのキーエスケープの一部を使用できますが、記号文字名は認識されません。
"\ C-u":ユニバーサル引数 "\ C-x \ C-r":re-read-init-file "\ e [11〜": "Function Key 1"
この例では、_C-u_は再び universal-argument 関数にバインドされています。 _C-x C-r_は関数 re-read-init-file にバインドされ、_ESC [1 1〜_はテキスト `+ Function Key 1 +`の挿入にバインドされます。
GNU Emacsスタイルのエスケープシーケンスの完全なセットは
Tag | Description |
---|---|
\C- | control prefix |
\M- | meta prefix |
\e | an escape character |
\\ | backslash |
\ | literal " |
\\(aq | literal \(aq |
GNU Emacsスタイルのエスケープシーケンスに加えて、2番目のバックスラッシュエスケープのセットが利用可能です。
Tag | Description |
---|---|
\a | alert (bell) |
\b | backspace |
\d | delete |
\f | form feed |
\n | newline |
\r | carriage return |
\t | horizontal tab |
\v | vertical tab |
\nnn | the eight-bit character whose value is the octal value nnn (one to three digits) |
\xHH | the eight-bit character whose value is the hexadecimal value HH (one or two hex digits) |
マクロのテキストを入力するときは、一重引用符または二重引用符を使用してマクロ定義を示す必要があります。 引用符で囲まれていないテキストは、関数名と見なされます。 マクロ本体では、上記のバックスラッシュエスケープが展開されます。 バックスラッシュは、 "や\(aq。
Readline変数
Readlineには、動作をさらにカスタマイズするために使用できる変数があります。 次の形式のステートメントを使用して、変数を_inputrc_ファイルに設定できます。
セット 変数名 値
記載されている場合を除き、readline変数は値に On または Off を使用できます(大文字と小文字は区別されません)。 認識されない変数名は無視されます。 変数値が読み取られるとき、空またはヌル値、「on」(大文字と小文字を区別しない)、および「1」は On と同等です。 他のすべての値は Off と同等です。 変数とそのデフォルト値は次のとおりです。
Tag
説明
- ベルスタイル(可聴) *
readlineが端末のベルを鳴らしたいときに何が起こるかを制御します。* none に設定すると、readlineはベルを鳴らしません。 *visible に設定されている場合、readlineは表示可能なベルを使用します(使用可能な場合)。 *可聴*に設定すると、readlineは端末のベルを鳴らそうとします。
bind-tty-special-chars(オン)*
- コメント開始(「#」) *
readline* insert-comment コマンドの実行時に挿入される文字列。 このコマンドは、emacsモードでは M-#に、viコマンドモードでは#*にバインドされます。
completion-ignore-case(オフ)*
completion-query-items(100)*
これにより、 possible-completions コマンドによって生成される可能性のある完了数の表示についてユーザーに照会するタイミングが決まります。 ゼロ以上の任意の整数値に設定できます。 可能な補完の数がこの変数の値以上である場合、ユーザーはそれらを表示するかどうかを尋ねられます。それ以外の場合は、単に端末にリストされます。
convert-meta(オン)*
disable-completion(オフ)*
- 編集モード(emacs) *
readlineが_emacs_または_vi_に似たキーバインディングのセットで始まるかどうかを制御します。* editing-mode は *emacs または vi に設定できます。
enable-keypad(オフ)*
expand-tilde(オフ)*
履歴保存ポイント(オフ)
水平スクロールモード(オフ)
入力メタ(オフ)
- isearch-terminators(「「C- [C-J」」)*
後でコマンドとして文字を実行せずにインクリメンタル検索を終了する文字列。 この変数に値が指定されていない場合、文字_ESC_および_C-J_はインクリメンタル検索を終了します。
- キーマップ(emacs) *
現在のreadlineキーマップを設定します。 有効なキーマップ名のセットは、emacs、emacs-standard、emacs-meta、emacs-ctlx、vi、vi-command、および_vi-insert_です。 _vi_は_vi-command_と同等です。 _emacs_は_emacs-standard_と同等です。 デフォルト値は_emacs_です。* editing-mode *の値もデフォルトのキーマップに影響します。
マークディレクトリ(オン)
mark-modified-lines(Off)*
mark-symlinked-directories(Off)*
match-hidden-files(オン)*
この変数を On に設定すると、readlineは、ファイル名の補完を実行するときに、「。」で始まる名前のファイルと一致します。
出力メタ(オフ)
ページ補完(オン)
print-completions-horizontally(オフ)*
show-all-if-ambiguous(オフ) *
これにより、補完機能のデフォルトの動作が変更されます。* on *に設定した場合、複数の補完候補がある単語は、ベルを鳴らすのではなく、一致をすぐにリストします。
- show-all-if-unmodified(オフ)*
これは、 show-all-if-ambiguous と同様の方法で、補完関数のデフォルトの動作を変更します。 on に設定されている場合、部分的な補完の可能性のない複数の補完が可能な単語(補完が共通の接頭辞を共有しない)により、ベルが鳴る代わりに一致がすぐにリストされます。
visible-stats(オフ)*
Readline条件付き構築物
Readlineは、Cプリプロセッサの条件付きコンパイル機能に精神的に似た機能を実装しており、テストの結果としてキーバインディングと変数設定を実行できます。 使用されるパーサーディレクティブは4つあります。
Tag | Description |
---|---|
*$if *a |
The* $if* construct allows bindings to be made based on the editing mode, the terminal being used, or the application using readline. The text of the test extends to the end of the line; no characters are required to isolate it. [width="100%",cols="50%,50%",options="header",] |
|Tag |Description |mode *|The mode= form of the $if directive is used to test whether readline is in emacs or vi mode. This may be used in conjunction with the set keymap* command, for instance, to set bindings in the emacs-standard and emacs-ctlx keymaps only if readline is starting out in emacs mode. |term *|The term= form may be used to include terminal-specific key bindings, perhaps to bind the key sequences output by the terminal’s function keys. The word on the right side of the = is tested against the both full name of the terminal and the portion of the terminal name before the first -. This allows sun to match both sun and sun-cmd, for instance. |*application *a| The application* construct is used to include application-specific settings. Each program using the readline library sets the application name, and an initialization file can test for a particular value. This could be used to bind key sequences to functions useful for a specific program. For instance, the following command adds a key sequence that quotes the current or previous word in Bash:
$if Bash # Quote the current or previous word "\C-xq": "\eb\"\ef\"" $endif |
*$endif * | This command, as seen in the previous example, terminates an* $if* command. | *$else * | Commands in this branch of the* $if* directive are executed if the test fails. | $include | This directive takes a single filename as an argument and reads commands and bindings from that file. For example, the following directive would read /etc/inputrc: |
a|
検索中
Readlineは、指定された文字列を含む行のコマンド履歴(下記の link:#53 [HISTORY] を参照)を検索するためのコマンドを提供します。 _incremental_と_non-incremental_の2つの検索モードがあります。
ユーザーが検索文字列の入力を完了する前に、インクリメンタル検索が開始されます。 検索文字列の各文字が入力されると、readlineはこれまでに入力された文字列に一致する履歴から次のエントリを表示します。 インクリメンタル検索では、目的の履歴エントリを見つけるために必要な数の文字のみが必要です。 isearch-terminators 変数の値に存在する文字は、インクリメンタル検索を終了するために使用されます。 その変数に値が割り当てられていない場合、エスケープおよびControl-J文字はインクリメンタル検索を終了します。 Control-Gはインクリメンタル検索を中止し、元の行を復元します。 検索が終了すると、検索文字列を含む履歴エントリが現在の行になります。
履歴リストで他の一致するエントリを見つけるには、必要に応じてControl-SまたはControl-Rを入力します。 これは、これまでに入力した検索文字列に一致する次のエントリを履歴内で後方または前方に検索します。 readlineコマンドにバインドされている他のキーシーケンスは、検索を終了し、そのコマンドを実行します。 たとえば、_newline_は検索を終了し、行を受け入れます。これにより、履歴リストからコマンドが実行されます。
Readlineは最後のインクリメンタル検索文字列を記憶します。 新しい検索文字列を定義する介在文字なしで2つのControl-Rを入力すると、記憶されている検索文字列が使用されます。
非インクリメンタル検索は、一致する履歴行の検索を開始する前に検索文字列全体を読み取ります。 検索文字列は、ユーザーが入力するか、現在の行のコンテンツの一部にすることができます。
Readlineコマンド名
以下は、コマンドの名前と、それらがバインドされるデフォルトのキーシーケンスのリストです。 付随するキーシーケンスのないコマンド名は、デフォルトではバインドされていません。 以下の説明では、_point_は現在のカーソル位置を指し、_mark_は set-mark コマンドで保存されたカーソル位置を指します。 ポイントとマークの間のテキストは_region_と呼ばれます。
移動用のコマンド
Tag
説明
行頭(C-a)
現在の行の先頭に移動します。
行末(C-e)
行の最後に移動します。
- forward-char(C-f)*
キャラクターを前方に移動します。
- backward-char(C-b)*
キャラクターを元に戻します。
前方ワード(M-f)
次の単語の最後に進みます。 単語は英数字(文字と数字)で構成されます。
後方ワード(M-b)
現在または前の単語の先頭に戻ります。 単語は英数字(文字と数字)で構成されます。
クリアスクリーン(C-l)
画面をクリアして、現在の行を画面の上部に残します。 引数を指定すると、画面をクリアせずに現在の行を更新します。
現在の行を更新します。
履歴を操作するためのコマンド
Tag
説明
- accept-line(改行、リターン)*
カーソルの位置に関係なく、行を受け入れます。 この行が空でない場合は、 HISTCONTROL 変数の状態に従って履歴リストに追加します。 行が変更された履歴行である場合、履歴行を元の状態に復元します。
前の履歴(C-p)
履歴リストから前のコマンドを取得し、リストに戻ります。
- next-history(C-n)*
履歴リストから次のコマンドを取得し、リスト内を前方に移動します。
歴史の始まり(M-<)
履歴の最初の行に移動します。
履歴の終わり(M→)
入力履歴の最後、つまり現在入力されている行に移動します。
逆検索履歴(C-r)
現在の行から後方に検索し、必要に応じて履歴を「上」に移動します。 これはインクリメンタル検索です。
前方検索履歴(C-s)
現在の行から前方に検索し、必要に応じて履歴を「下に」移動します。 これはインクリメンタル検索です。
非増分逆検索履歴(M-p)
ユーザーが指定した文字列の非インクリメンタル検索を使用して、現在の行から開始して履歴を逆方向に検索します。
非増分前方検索履歴(M-n)
ユーザーが指定した文字列の非インクリメンタル検索を使用して、履歴を前方に検索します。
現在の行の先頭とポイントの間の文字列の履歴を前方に検索します。 これは非増分検索です。
現在の行の先頭とポイントの間の文字列を履歴で後方に検索します。 これは非増分検索です。
- yank-nth-arg(M-C-y)*
ポイントに、前のコマンドの最初の引数(通常は前の行の2番目の単語)を挿入します。 引数_n_を使用して、前のコマンドのnthワードを挿入します(前のコマンドのワードはワード0で始まります)。 負の引数は、前のコマンドの末尾からnthワードを挿入します。 引数_n_が計算されると、引数は「!n」履歴展開が指定されたかのように抽出されます。
yank-last-arg(M-。、M-_)前のコマンドの最後の引数(前の履歴エントリの最後の単語)を挿入します。 引数を指定すると、 yank-nth-arg とまったく同じように動作します。 yank-last-arg を連続して呼び出すと、履歴リストに戻り、各行の最後の引数が順番に挿入されます。 履歴展開機能は、「!$」履歴展開が指定されているかのように、最後の引数を抽出するために使用されます。
シェル拡張ライン(M-C-e)
シェルのように行を展開します。 これにより、すべてのシェルワード展開だけでなく、エイリアスと履歴の展開も実行されます。 履歴展開の説明については、以下の HISTORY EXPANSION を参照してください。
履歴展開行(M-^)
現在の行で履歴展開を実行します。 履歴展開の説明については、以下の HISTORY EXPANSION を参照してください。
マジックスペース
現在の行で履歴展開を実行し、スペースを挿入します。 履歴展開の説明については、以下の HISTORY EXPANSION を参照してください。
エイリアス-エキスパンドライン
現在の行でエイリアス展開を実行します。 エイリアス展開の説明については、上記の link:#36 [ALIASES] を参照してください。
履歴とエイリアスの展開行
現在の行で履歴とエイリアスの展開を実行します。
最後の引数を挿入(M-。、M -_)
次の操作と取得(C-o)
現在の行を受け入れて実行し、編集のために履歴から現在の行に関連する次の行をフェッチします。 引数は無視されます。
- 編集および実行コマンド(C-xC-e) *
現在のコマンドラインでエディターを起動し、結果をシェルコマンドとして実行します。* Bash は、エディターとして *$ FCEDIT 、 $ EDITOR 、および_emacs_をこの順序で呼び出そうとします。
テキストを変更するためのコマンド
Tag
説明
- delete-char(C-d)*
ポイントのキャラクターを削除します。 ポイントが行の先頭にある場合、行には文字がなく、最後に入力された文字は delete-char にバインドされていなかったため、 EOF を返します。
- backward-delete-char(Rubout)*
カーソルの後ろの文字を削除します。 数値引数を指定すると、削除したテキストをキルリングに保存します。
カーソルが行の最後にない限り、カーソルの下の文字を削除します。その場合、カーソルの後ろの文字は削除されます。
引用挿入(C-q、C-v)
入力された次の文字をそのまま行に追加します。 これは、たとえば C-q などの文字を挿入する方法です。
- tab-insert(C-v TAB)*
タブ文字を挿入します。
自己挿入(a、b、A、1、!、…)
入力した文字を挿入します。
トランスポーズ文字(C-t)
ポイントの前のキャラクターをポイントのキャラクターの上にドラッグし、ポイントも前に移動します。 ポイントが行末にある場合、これはポイントの前の2文字を転置します。 負の引数は効果がありません。
トランスポーズワード(M-t)
ポイントの前の単語をポイントの後の単語を越えてドラッグし、その単語の上にポイントを移動します。 ポイントが行の末尾にある場合、これは行の最後の2つの単語を置き換えます。
大文字の単語(M-u)
現在の(または後続の)単語を大文字にします。 負の引数を使用すると、前の単語は大文字になりますが、ポイントは移動しません。
小文字(M-l)
現在の(または後続の)単語を小文字にします。 負の引数を使用すると、前の単語は小文字になりますが、ポイントは移動しません。
大文字の単語(M-c)
現在の(または後続の)単語を大文字にします。 負の引数を使用すると、前の単語を大文字にしますが、ポイントは移動しません。
上書きモード
上書きモードを切り替えます。 明示的な正の数値引数を使用すると、上書きモードに切り替わります。 明示的な非正の数値引数を使用すると、挿入モードに切り替わります。 このコマンドは emacs モードのみに影響します。 vi モードでは上書きが異なります。 _readline()_の各呼び出しは、挿入モードで開始されます。 上書きモードでは、テキストを右に押すのではなく、 self-insert にバインドされた文字がポイントでテキストを置き換えます。 backward-delete-char にバインドされた文字は、ポイントの前の文字をスペースに置き換えます。 デフォルトでは、このコマンドはバインドされていません。
キリングとヤンキング
Tag
説明
キルライン(C-k)
ポイントから行末までのテキストを削除します。
後方キルライン(C-x Rubout)
行の先頭まで後方にキルします。
- unix-line-discard(C-u)*
ポイントから行の先頭までをキルします。 キルされたテキストはキルリングに保存されます。
ポイントがどこにあっても、現在の行のすべての文字を殺します。
- kill-word(M-d)*
ポイントから現在の単語の終わりまで、または単語間であれば次の単語の終わりまでを削除します。 単語の境界は、 forward-word で使用されるものと同じです。
バックワードキルワード(M-Rubout)
ポイントの後ろの単語を殺します。 単語の境界は、 backward-word で使用されるものと同じです。
- unix-word-rubout(C-w)*
空白を単語の境界として使用して、ポイントの後ろの単語を削除します。 キルされたテキストはキルリングに保存されます。
空白とスラッシュ文字を単語の境界として使用して、ポイントの後ろの単語を削除します。 キルされたテキストはキルリングに保存されます。
削除水平スペース(M-\)
ポイントの周囲のスペースとタブをすべて削除します。
キル領域
現在のリージョンのテキストを削除します。
リージョン内のテキストをキルバッファーにコピーします。
ポイントの前の単語をキルバッファにコピーします。 単語の境界は backward-word と同じです。
コピーフォワードワード
ポイントに続くワードをキルバッファにコピーします。 単語の境界は forward-word と同じです。
ヤンク(C-y)
キルリングの上部をポイントのバッファーにヤンクします。
- ヤンクポップ(M-y) *
キルリングを回転させ、新しいトップをヤンクします。* yank または *yank-pop の後にのみ機能します。
数値引数
Tag
説明
数字の引数(M-0、M-1、…、M-)
すでに蓄積されている引数にこの数字を追加するか、新しい引数を開始します。 M—は負の引数を開始します。
ユニバーサル引数
これは、引数を指定する別の方法です。 このコマンドの後に、オプションで先頭にマイナス記号を付けた1つ以上の数字が続く場合、それらの数字は引数を定義します。 コマンドの後に数字が続く場合、 universal-argument を再度実行すると数値引数が終了しますが、それ以外の場合は無視されます。 特別な場合として、このコマンドの直後に数字でもマイナス記号でもない文字が続く場合、次のコマンドの引数カウントは4倍されます。 引数カウントは最初は1なので、この関数を最初に実行すると引数カウントが4になり、2回目に実行すると引数カウントが16になります。
完了
Tag
説明
- 完了(TAB) *
ポイントの前のテキストの補完を試みます。* Bash は、テキストを変数(テキストが *$ で始まる場合)、ユーザー名(テキストが*〜で始まる場合)、ホスト名(テキストが *@ で始まる場合)、またはコマンド(エイリアスと関数)。 これらのいずれも一致しない場合、ファイル名の補完が試行されます。
可能な補完(M-?)
ポイントの前のテキストの可能な補完をリストします。
挿入完了(M-)*
メニュー完了
行の先頭または末尾にない場合( delete-char など)、カーソルの下の文字を削除します。 行の最後にある場合、 possible-completions と同じように動作します。 このコマンドはデフォルトではバインドされていません。
完全なファイル名(M-/)
ポイントの前のテキストでファイル名の補完を試みます。
可能なファイル名の補完(C-x/)
ポイントの前にテキストの補完候補をリストし、ファイル名として扱います。
完全なユーザー名(M-〜)
ポイントの前のテキストで補完を試み、それをユーザー名として扱います。
可能なユーザー名補完(C-x〜)
ポイントの前にテキストの補完候補をリストし、ユーザー名として扱います。
完全変数(M-$)
ポイントの前のテキストの補完を試み、それをシェル変数として扱います。
可能な変数補完(C-x $)
ポイントの前のテキストの補完候補をリストし、シェル変数として扱います。
完全なホスト名(M-@)
ポイントの前のテキストで補完を試み、それをホスト名として扱います。
可能なホスト名補完(C-x @)
ポイントの前のテキストの補完候補をリストし、ホスト名として扱います。
完全なコマンド(M-!)
ポイントの前のテキストを補完して、コマンド名として扱います。 コマンド補完では、テキストをエイリアス、予約語、シェル関数、シェル組み込み関数、最後に実行可能なファイル名の順に照合します。
可能なコマンド補完(C-x!)
ポイントの前のテキストの補完候補をリストし、コマンド名として扱います。
動的完全履歴(M-TAB)
ポイントの前のテキストで補完を試み、可能な一致の一致について履歴リストの行とテキストを比較します。
中かっこ(M-\ {)
ファイル名補完を実行し、リストをシェルで使用できるように、中かっこで囲まれた補完候補のリストを挿入します(上記の link:#21 [ブレース展開] を参照)。
キーボードマクロ
Tag
説明
- start-kbd-macro(C-x()*
現在のキーボードマクロに入力した文字の保存を開始します。
- end-kbd-macro(C-x))*
入力した文字の現在のキーボードマクロへの保存を停止し、定義を保存します。
- call-last-kbd-macro(C-x e)*
マクロ内の文字をキーボードで入力したかのように表示することにより、定義された最後のキーボードマクロを再実行します。
その他
Tag
説明
- re-read-init-file(C-x C-r)*
_inputrc_ファイルの内容を読み取り、そこにあるバインディングまたは変数の割り当てを組み込みます。
中止(C-g)
現在の編集コマンドを中止し、端末のベルを鳴らします( bell-style の設定に従います)。
- do-uppercase-version(M-a、M-b、M-** x、…)
メタ化された文字_x_が小文字の場合、対応する大文字にバインドされているコマンドを実行します。
- prefix-meta(ESC) *
入力された次の文字をメタ化します。* ESC * f は Meta-f と同等です。
元に戻す(C -_、C-x C-u)
行ごとに個別に記憶される増分取り消し。
復帰ライン(M-r)
この行に加えられたすべての変更を元に戻します。 これは、行を初期状態に戻すのに十分な回数 undo コマンドを実行するようなものです。
チルダ展開(M-&)
現在の単語に対してチルダ展開を実行します。
セットマーク(C-@、M- <スペース>)
ポイントにマークを設定します。 数値引数が指定されている場合、マークはその位置に設定されます。
交換ポイントとマーク(C-x C-x)
ポイントをマークと交換します。 現在のカーソル位置は保存された位置に設定され、古いカーソル位置はマークとして保存されます。
文字検索(C-])
文字が読み取られ、ポイントがその文字の次の出現箇所に移動されます。 負の数は、以前の出現を検索します。
文字検索後方(M-C-])
文字が読み取られ、ポイントがその文字の前の出現箇所に移動されます。 負の数は、後続の出現を検索します。
- コメントの挿入(M-#) *
数値引数がない場合、readline* comment-begin 変数の値は現在の行の先頭に挿入されます。 数値引数が指定されている場合、このコマンドはトグルとして機能します。行の先頭の文字が *comment-begin の値と一致しない場合、値が挿入されます。それ以外の場合、 comment-begin の文字は行の先頭から削除されました。 どちらの場合でも、改行は入力されたかのように受け入れられます。 comment-begin のデフォルト値により、このコマンドは現在の行をシェルコメントにします。 数値引数によってコメント文字が削除される場合、その行はシェルによって実行されます。
- glob-complete-word(M-g)*
ポイントの前の単語は、パス名展開のパターンとして扱われ、アスタリスクが暗黙的に追加されます。 このパターンは、可能な補完のために一致するファイル名のリストを生成するために使用されます。
ポイントの前の単語はパス名展開のパターンとして扱われ、一致するファイル名のリストが挿入されて、単語が置き換えられます。 数値引数が指定されている場合、パス名展開の前にアスタリスクが追加されます。
glob-list-expansions(C-x g)*
ダンプ機能
すべての関数とそのキーバインディングをreadline出力ストリームに出力します。 数値引数が指定されている場合、出力は_inputrc_ファイルの一部にできるようにフォーマットされます。
ダンプ変数
設定可能なすべてのreadline変数とその値をreadline出力ストリームに出力します。 数値引数が指定されている場合、出力は_inputrc_ファイルの一部にできるようにフォーマットされます。
ダンプマクロ
マクロにバインドされているすべてのreadlineキーシーケンスと、マクロが出力する文字列を出力します。 数値引数が指定されている場合、出力は_inputrc_ファイルの一部にできるようにフォーマットされます。
ディスプレイシェルバージョン(C-x C-v)
プログラム可能な完了
完了仕様(compspec)が complete ビルトイン(以下の* SHELL BUILTINコマンド*を参照)を使用して定義されているコマンドの引数に対してワード補完が試行されると、プログラム可能な補完機能が呼び出されます。
最初に、コマンド名が識別されます。 compspecがそのコマンドに対して定義されている場合、compspecを使用して、単語の可能な補完のリストが生成されます。 コマンドワードがフルパス名である場合、フルパス名のcompspecが最初に検索されます。 完全パス名のcompspecが見つからない場合、最後のスラッシュに続く部分のcompspecを見つけようとします。
compspecが見つかったら、一致する単語のリストを生成するために使用されます。 compspecが見つからない場合、上記の link:#49 [Completing] で説明されているデフォルトの bash 補完が実行されます。
まず、compspecで指定されたアクションが使用されます。 補完されている単語を接頭辞とする一致のみが返されます。 ファイル名またはディレクトリ名の補完に -f または -d オプションが使用される場合、シェル変数 FIGNORE が一致のフィルタリングに使用されます。
次に、-W *オプションの引数として指定された文字列が考慮されます。 文字列は、区切り文字として *IFS 特殊変数の文字を使用して最初に分割されます。 シェルの引用は尊重されます。 上記の link:#20 [EXPANSION] で説明されているように、各単語はブレース展開、チルダ展開、パラメータおよび変数展開、コマンド置換、算術展開を使用して展開されます。 結果は、上記の link:#27 [Word Splitting] で説明されているルールを使用して分割されます。 拡張の結果は、補完される単語に対してプレフィックス一致し、一致する単語が補完候補になります。
これらの一致が生成された後、-F *および *-C オプションで指定されたシェル関数またはコマンドが呼び出されます。 コマンドまたは関数が呼び出されると、 COMP_LINE および COMP_POINT 変数には、上記の link:#18 [Shell Variables] で説明した値が割り当てられます。 シェル関数が呼び出されている場合、 COMP_WORDS および COMP_CWORD 変数も設定されます。 関数またはコマンドが呼び出されると、最初の引数は引数が完了しているコマンドの名前、2番目の引数は完了中の単語、3番目の引数は現在のコマンドラインで完了している単語の前の単語です。 完了した単語に対する生成された補完のフィルタリングは実行されません。関数またはコマンドは、一致を生成する際に完全に自由です。
次に、*-C *オプションで指定されたコマンドは、コマンド置換と同等の環境で呼び出されます。 補完のリストを1行に1つずつ標準出力に出力する必要があります。 必要に応じて、バックスラッシュを使用して改行をエスケープできます。
可能なすべての補完が生成された後、-X *オプションで指定されたフィルターがリストに適用されます。 フィルターは、パス名の展開に使用されるパターンです。パターン内の&は、完成する単語のテキストに置き換えられます。 リテラル&はバックスラッシュでエスケープできます。一致を試みる前にバックスラッシュが削除されます。 パターンに一致する補完はリストから削除されます。 先頭の!*はパターンを無効にします。この場合、パターンに一致しない補完は削除されます。
最後に、-P *および *-S オプションで指定された接頭辞と接尾辞が完了リストの各メンバーに追加され、結果が可能な完了のリストとしてreadline完了コードに返されます。
以前に適用されたアクションが一致を生成せず、compspecが定義されたときに* completeに -o dirnames オプションが指定された場合、ディレクトリ名の補完が試行されます。
compspecが定義されたときに complete に -o plusdirs オプションが指定された場合、ディレクトリ名の補完が試行され、他のアクションの結果に一致が追加されます。
デフォルトでは、compspecが見つかった場合、それが生成するものはすべて、可能な完了の完全なセットとして完了コードに返されます。 デフォルトの bash 補完は試行されず、readlineのデフォルトのファイル名補完は無効になっています。 compspecが定義されたときに* complete oに -o bashdefault オプションが指定された場合、compspecが一致を生成しないと、 bash のデフォルトの補完が試行されます。 compspecの定義時に -o default オプションが complete に指定された場合、compspec(および試行された場合、デフォルトの bash 補完)が一致しない場合、readlineのデフォルト補完が実行されます。
compspecがディレクトリ名の補完が必要であることを示すと、プログラム可能な補完関数は、readlineの設定に関係なく、 mark-directories readline変数の値に従って、ディレクトリへのシンボリックリンクである完成した名前にスラッシュを強制的に追加します mark-symlinked-directories readline変数。
歴史
*-o historyset * *command history HISTSIZEHISTSIZElink:#20 [EXPANSION] HISTIGNOREHISTCONTROL *
起動時に、履歴は変数 HISTFILE (デフォルトは_〜/.bash_history_)で指定されたファイルから初期化されます。 HISTFILE の値で指定されたファイルは、 HISTFILESIZE の値で指定された行数以下になるように、必要に応じて切り捨てられます。 対話型シェルが終了すると、最後の $ HISTSIZE 行が履歴リストから $ HISTFILE にコピーされます。 histappend シェルオプションが有効な場合(下記の* SHELL BUILTINコマンド*の下の shopt の説明を参照)、行は履歴ファイルに追加されます。それ以外の場合、履歴ファイルは上書きされます。 HISTFILE が設定されていない場合、または履歴ファイルが書き込み可能でない場合、履歴は保存されません。 履歴を保存した後、履歴ファイルは HISTFILESIZE 行を超えないように切り捨てられます。 HISTFILESIZE が設定されていない場合、切り捨ては実行されません。
組み込みコマンド fc (以下の* SHELL BUILTINコマンド*を参照)を使用して、履歴リストの一部をリストまたは編集し、再実行できます。 history ビルトインを使用して、履歴リストを表示または変更し、履歴ファイルを操作できます。 コマンドライン編集を使用する場合、履歴リストへのアクセスを提供する各編集モードで検索コマンドを使用できます。
シェルを使用すると、どのコマンドを履歴リストに保存するかを制御できます。 HISTCONTROL および HISTIGNORE 変数を設定すると、シェルは入力されたコマンドのサブセットのみを保存します。 cmdhist シェルオプションを有効にすると、シェルは同じ履歴エントリに複数行のコマンドの各行を保存しようとし、構文の正確さを維持するために必要に応じてセミコロンを追加します。 lithist シェルオプションを使用すると、シェルはコマンドをセミコロンではなく埋め込み改行で保存します。 シェルオプションの設定と設定解除については、以下の* SHELL BUILTINコマンド*の下にある shopt ビルトインの説明を参照してください。
歴史的拡大
シェルは、* csh。の履歴展開と同様の履歴展開機能をサポートしています。このセクションでは、使用可能な構文機能について説明します。 この機能は、対話型シェルではデフォルトで有効になっており、 *set 組み込みコマンドの + H オプションを使用して無効にできます(以下の* SHELL BUILTINコマンド*を参照)。 非対話型シェルは、デフォルトでは履歴展開を実行しません。
履歴展開により、履歴リストの単語が入力ストリームに導入され、コマンドの繰り返し、前のコマンドへの引数の現在の入力行への挿入、前のコマンドのエラーの修正が簡単になります。
履歴の展開は、完全な行が読み取られた直後、シェルがそれを単語に分割する前に実行されます。 2つの部分で行われます。 1つ目は、置換時に履歴リストのどの行を使用するかを決定することです。 2つ目は、その行の一部を選択して、現在の行に含めることです。 履歴から選択された行は_event_であり、その行の処理対象の部分は_words_です。 選択した単語を操作するために、さまざまな_modifiers_を使用できます。 行は入力を読み取るときと同じ方法で単語に分割されるため、引用符で囲まれた複数の_metacharacter_で区切られた単語は1つの単語と見なされます。 履歴展開は、履歴展開文字の外観によって導入されます。これはデフォルトで*!です。 履歴拡張文字を引用できるのは、バックスラッシュ( *\ )と一重引用符のみです。
スペース、タブ、改行、キャリッジリターン、 = など、引用符で囲まれていない場合でも、いくつかの文字が履歴展開文字の直後に見つかった場合、履歴展開を禁止します。 extglob シェルオプションが有効な場合、*(*も展開を禁止します。
シェルでは、履歴展開メカニズムで使用されるさまざまな文字を制御できます( link:#18 [Shell Variables] の下の上記の histchars の説明を参照)。
イベント指定子
イベント指定子は、履歴リスト内のコマンドラインエントリへの参照です。
Tag
説明
!
! n
コマンドライン_n_を参照してください。
!- n
現在のコマンドラインから_n_を引いたものを参照してください。
!!
前のコマンドを参照してください。 これは「!-1」の同義語です。
! string
_string_で始まる最新のコマンドを参照してください。
*!? string [?] *
_string_を含む最新のコマンドを参照してください。 _string_の直後に改行が続く場合、末尾の*?*は省略できます。
〜^〜 string1〜〜string2〜〜
クイック置換。 string1_を_string2_に置き換えて、最後のコマンドを繰り返します。 「!!:s/_string1 _/ string2_/」に相当します(下記の link:#56 [修飾子] を参照)。
- !# *
これまでに入力したコマンドライン全体。
Word Designators
単語指定子は、イベントから目的の単語を選択するために使用されます。* :は、イベント指定とワード指定子を分離します。 単語指定子が *^ 、 $ 、*、-、または*%*で始まる場合は省略できます。 単語には行の先頭から番号が付けられ、最初の単語は0(ゼロ)で示されます。 単語は、単一のスペースで区切られて現在の行に挿入されます。
Tag
説明
- 0(ゼロ)*
0番目の単語。 シェルの場合、これはコマンドワードです。
n
nthワード。
^
最初の引数。 つまり、単語1です。
$
最後の引数。
- % *
最新の「?string?」検索で一致した単語。
x* -* y
単語の範囲。 「-y」は「0-y」の略です。
0番目以外のすべての単語。 これは「_1-$ _」の同義語です。 使用するのはエラーではありません * 1つしかない場合 イベントの言葉;その場合、空の文字列が返されます。
x*
_x-$ _を短縮します。
x-
修飾子
オプションの単語指定子の後に、次の修飾子のシーケンスが表示される場合があります。各修飾子の前には「:」が付きます。
Tag
説明
h
末尾のファイル名コンポーネントを削除し、先頭のみを残します。
t
末尾を残して、すべての先行ファイル名コンポーネントを削除します。
r
ベース名を残して、_。xxx_形式の末尾のサフィックスを削除します。
e
末尾の接尾辞を除くすべてを削除します。
p
新しいコマンドを出力しますが、実行はしません。
q
置換された単語を引用し、さらに置換をエスケープします。
x
- s/ * old/_ new_/
イベント行の最初の_old_を_new_に置き換えます。/の代わりに任意の区切り文字を使用できます。 イベント行の最後の文字である場合、最後の区切り文字はオプションです。 区切り文字は、_old_と_new_で単一のバックスラッシュで引用できます。 _new_に&が表示される場合、_old_に置き換えられます。 単一のバックスラッシュで&を引用します。 _old_がヌルの場合、最後に置換された_old_に設定されます。以前の履歴置換が行われなかった場合、*!? string [?] *検索の最後の_string_に設定されます。
&
前の置換を繰り返します。
g
イベント行全体に変更を適用します。 これは、「:s *」(「:gs/ old/_ new_/」など)または「:&」と組み合わせて使用されます。 「:s 」で使用する場合、/の代わりに任意の区切り文字を使用できます。イベント行の最後の文字の場合、最終区切り文字はオプションです。 *a は g の同義語として使用できます。
G
次の「 s 」修飾子をイベント行の各単語に1回適用します。
シェルビルティンコマンド
特に明記されていない限り、このセクションで説明されている各組み込みコマンドは、 * 受け入れる * オプションの終わりを示します。 たとえば、:、 true 、 false 、および test ビルトインはオプションを受け入れません。 また、非インタラクティブモードでの実行中および_posix_モードでの実行中は、特別な組み込みコマンド(。、:、 break 、 continue 、 eval 、 exec 、 exit など) 、 export 、 readonly 、 return 、 set 、 shift 、 source 、 times 、 trap 、 unset )ゼロ以外のステータスで終了すると、シェルは実行を停止します。
Tag
説明
: [arguments]
無効;このコマンドは、_arguments_を展開し、指定されたリダイレクトを実行する以外には何もしません。 ゼロの終了コードが返されます。
- filename [arguments] ソース filename [arguments]
現在のシェル環境で_filename_からコマンドを読み取って実行し、filename_から最後に実行されたコマンドの終了ステータスを返します。 _filename_にスラッシュが含まれていない場合、 PATH のファイル名を使用して、_filename_を含むディレクトリが検索されます。 PATH で検索されるファイルは実行可能である必要はありません。 bash が_posix mode_にない場合、 PATH にファイルが見つからない場合、現在のディレクトリが検索されます。 shopt 組み込みコマンドの sourcepath オプションがオフになっている場合、 PATH は検索されません。 _arguments_が指定されている場合、それらは_filename_が実行されるときに位置パラメータになります。 それ以外の場合、位置パラメータは変わりません。 戻りステータスは、スクリプト内で終了した最後のコマンドのステータス(コマンドが実行されない場合は0)、 filename_が見つからないか、読み取ることができない場合はfalseです。
エイリアス [ -p ] [name _ [= _ value] …]
エイリアスは、非対話型シェルではデフォルトで展開されないため、 shopt を使用して expand_aliases シェルオプションを設定することで有効にできます。
&*で開始されたかのように、中断された各ジョブ_jobspec_をバックグラウンドで再開します。 _jobspec_が存在しない場合、_current job_のシェルの概念が使用されます。 *bg _jobspec_は、ジョブ制御が無効な場合、またはジョブ制御を有効にして実行した場合、指定された_jobspec_が見つからないか、ジョブ制御なしで開始された場合を除き、0を返します。
現在の readline キーと関数のバインディングを表示し、キーシーケンスを readline 関数またはマクロにバインドするか、 readline 変数を設定します。 非オプション引数はそれぞれ、_。inputrc_にあるコマンドですが、各バインディングまたはコマンドは個別の引数として渡す必要があります。例えば、「 "\ C-x \ C-r":re-read-init-file」。 オプションが提供される場合、オプションの意味は次のとおりです。
Tag
説明
後続のバインディングの影響を受けるキーマップとして_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
-P
現在の readline 関数名とバインディングをリストします。
-v
-V
現在の readline 変数名と値をリストします。
-s
マクロにバインドされた readline キーシーケンスと、マクロが出力する文字列を、再読み取りできるように表示します。
-S
マクロにバインドされた readline キーシーケンスと、マクロが出力する文字列を表示します。
_filename_からキーバインディングを読み取ります。
指定された_function_を呼び出すキーについて問い合わせます。
名前付き_function_にバインドされているすべてのキーのバインドを解除します。
_keyseq_の現在のバインディングを削除します。
_keyseq_が入力されるたびに_shell-command_が実行されます。
認識されないオプションが指定されるか、エラーが発生しない限り、戻り値は0です。
ブレーク [n]
指定されたシェル組み込みコマンドを実行し、_arguments_を渡して、終了ステータスを返します。 これは、組み込みのシェルの名前と同じ名前の関数を定義し、その関数内に組み込みの機能を保持する場合に役立ちます。 通常、 cd ビルトインはこの方法で再定義されます。 _shell-builtin_がシェル組み込みコマンドでない場合、戻りステータスはfalseです。
現在のディレクトリを_dir_に変更します。 変数 HOME はデフォルトの_dir_です。 変数 CDPATH は、_dir_を含むディレクトリの検索パスを定義します。 CDPATH の代替ディレクトリ名はコロン(:)で区切られます。 CDPATH の空のディレクトリ名は、現在のディレクトリと同じ、つまり「 '。'」です。 _dir_がスラッシュ(/)で始まる場合、 CDPATH は使用されません。 -P オプションは、シンボリックリンクをたどる代わりに物理ディレクトリ構造を使用するように指示します( set 組み込みコマンドの -P オプションも参照してください)。 -L オプションは、シンボリックリンクを強制的にたどります。 の議論 * と同等です $ OLDPWD 。 CDPATH の空でないディレクトリ名が使用されている場合、または * は最初の引数で、ディレクトリの変更は 成功すると、新しい作業ディレクトリの絶対パス名が標準出力に書き込まれます。 ディレクトリが正常に変更された場合、戻り値はtrueです。そうでない場合はfalse。
呼び出し元 [expr]
アクティブなサブルーチン呼び出し(シェル関数、または*。または *source ビルトインで実行されたスクリプト)のコンテキストを返します。 _expr_がない場合、 caller は現在のサブルーチン呼び出しの行番号とソースファイル名を表示します。 _expr_として負でない整数が指定されている場合、 caller は、現在の実行呼び出しスタック内のその位置に対応する行番号、サブルーチン名、およびソースファイルを表示します。 この追加情報は、たとえばスタックトレースを印刷するために使用できます。 現在のフレームはフレーム0です。 シェルがサブルーチン呼び出しを実行していないか、_expr_が呼び出しスタック内の有効な位置に対応していない限り、戻り値は0です。
コマンド [ -pVv ] command [arg …]
_args_を指定して_command_を実行し、通常のシェル関数検索を抑制します。 組み込みコマンドまたは PATH にあるコマンドのみが実行されます。 -p オプションが指定されている場合、すべての標準ユーティリティが見つかることが保証されている PATH のデフォルト値を使用して、_command_の検索が実行されます。 -V または -v オプションのいずれかが指定されている場合、_command_の説明が出力されます。 -v オプションを使用すると、_command_の呼び出しに使用されるコマンドまたはファイル名を示す1つの単語が表示されます。 -V オプションは、より詳細な説明を生成します。 -V または -v オプションが指定された場合、終了ステータスは、_command_が見つかった場合は0、見つからない場合は1です。 どちらのオプションも提供されず、エラーが発生した場合、または_command_が見つからない場合、終了ステータスは127です。 それ以外の場合、 command ビルトインの終了ステータスは、_command_の終了ステータスです。
optionsに従って_word_の補完候補を生成します。これは、-p *および *-r を除き、 complete ビルトインで受け入れられるオプションで、標準出力に一致を書き込みます。 -F または -C オプションを使用する場合、プログラム可能な補完機能によって設定されたさまざまなシェル変数は使用可能ですが、有用な値を持ちません。
一致は、プログラム可能な完了コードが同じフラグを持つ完了仕様から直接生成した場合と同じ方法で生成されます。 _word_が指定されている場合、_word_に一致する補完のみが表示されます。
無効なオプションが指定されない限り、または一致が生成されない限り、戻り値はtrueです。
[-X * filterpat] [ *-F function] [ -C command] name [name …]
完全 -pr [name …]
各_name_への引数の完成方法を指定します。 -p オプションが指定されている場合、またはオプションが指定されていない場合、既存の完了仕様は入力として再利用できるように印刷されます。 -r オプションは、各_name_の完了仕様を削除します。また、namesが指定されていない場合は、すべての完了仕様を削除します。
単語補完が試行されるときにこれらの補完仕様を適用するプロセスは、上記の link:#52 [Programmable Completion] で説明されています。
他のオプションが指定されている場合、次の意味があります。 -G 、-W *、および *-X オプション(および、必要に応じて -P および -S オプション)の引数は、* completeの前に展開から保護するために引用符で囲む必要があります*組み込みが呼び出されます。
Tag
説明
_comp-option_は、補完の単純な生成を超えて、compspecの動作のいくつかの側面を制御します。 _comp-option_は次のいずれかです。
Tag
説明
compspecが一致を生成しない場合、残りのデフォルトの bash 補完を実行します。
デフォルト
compspecが一致を生成しない場合、readlineのデフォルトのファイル名補完を使用します。
ディレクトリ名
compspecが一致を生成しない場合、ディレクトリ名の補完を実行します。
ファイル名
compspecがファイル名を生成することをreadlineに伝えて、ファイル名固有の処理(ディレクトリ名へのスラッシュの追加や末尾のスペースの抑制など)を実行できるようにします。 シェル関数で使用することを目的としています。
立つ瀬がない
行末で補完された単語にスペース(デフォルト)を追加しないようにreadlineに指示します。
compspecで定義された一致が生成されると、ディレクトリ名の補完が試行され、一致が他のアクションの結果に追加されます。
_action_は、可能な補完のリストを生成する次のいずれかです。
Tag
説明
- エイリアス *
エイリアス名。* -a *として指定することもできます。
配列変数名。
バインディング
- ビルトイン *
シェル組み込みコマンドの名前。* -b *として指定することもできます。
- コマンド *
コマンド名。* -c *としても指定できます。
- ディレクトリ *
ディレクトリ名。* -d *として指定することもできます。
無効
無効なシェルビルトインの名前。
有効
有効なシェルビルトインの名前。
- 輸出する *
エクスポートされたシェル変数の名前。* -e *としても指定できます。
- ファイル *
ファイル名。* -f *としても指定できます。
関数
シェル関数の名前。
- グループ *
グループ名。* -g *としても指定できます。
ヘルプトピック
ホスト名
- ジョブ *
ジョブ制御がアクティブな場合のジョブ名。* -j *としても指定できます。
- キーワード *
シェルの予約語。* -k *としても指定できます。
ランニング
ジョブ制御がアクティブな場合、実行中のジョブの名前。
- サービス *
サービス名。* -s *としても指定できます。
ショップ
信号
信号名。
停止
ジョブ制御がアクティブな場合、停止したジョブの名前。
- ユーザー *
ユーザー名。* -u *として指定することもできます。
- 変数 *
すべてのシェル変数の名前。* -v *としても指定できます。
ファイル名展開パターン_globpat_は、可能な補完を生成するために展開されます。
_wordlist_は、 IFS 特殊変数の文字を区切り文字として使用して分割され、結果の各単語が展開されます。 可能な補完は、補完される単語に一致する結果リストのメンバーです。
_command_はサブシェル環境で実行され、その出力は可能な補完として使用されます。
シェル関数_function_は、現在のシェル環境で実行されます。 完了すると、 COMPREPLY 配列変数の値から可能な補完が取得されます。
_filterpat_は、ファイル名の展開に使用されるパターンです。 これは、前のオプションと引数によって生成された可能な補完のリストに適用され、_filterpat_に一致する各補完がリストから削除されます。 _filterpat_の先頭の*!*はパターンを無効にします。この場合、_filterpat_に一致しない補完は削除されます。
_prefix_は、他のすべてのオプションが適用された後、可能な各完了の先頭に追加されます。
_suffix_は、他のすべてのオプションが適用された後に、可能な各補完に追加されます。
無効なオプションが指定されない限り、戻り値はtrueです。-p *または *-r 以外のオプションが_name_引数なしで指定され、指定が存在しない_name_の完了指定を削除しようとします。または、完了仕様の追加時にエラーが発生します。
続行 [n]
囲む for 、 while 、 until 、または select ループの次の反復を再開します。 _n_が指定されている場合は、nth番目のループから再開します。 _n_は1以上でなければなりません。 _n_が囲むループの数より大きい場合、最後の囲むループ(「トップレベル」ループ)が再開されます。 ループ内でcontinueを実行すると、_n_が⇐ 0の場合、戻り値はゼロ以外になります。それ以外の場合、continueは値0を返します。 continueがループ外で実行された場合、戻り値は0です。
宣言 [ -afFirtx ] [ -p ] [name _ [= _ value] …] typeset [ -afFirtx ] [ -p ] [name _ [= _ value] …]
変数を宣言するか、属性を与えます。 namesが指定されていない場合は、変数の値を表示します。 -p オプションは、各_name_の属性と値を表示します。 -p を使用すると、追加のオプションは無視されます。 -F オプションは、関数定義の表示を禁止します。関数名と属性のみが出力されます。 shopt を使用して extdebug シェルオプションが有効になっている場合、関数が定義されているソースファイル名と行番号も表示されます。 -F オプションは -f を意味します。 次のオプションを使用して、指定された属性を持つ変数への出力を制限したり、変数に属性を与えたりできます。
Tag
説明
-a
各_name_は配列変数です(上記の link:#19 [Arrays] を参照)。
-f
関数名のみを使用してください。
-i
変数は整数として扱われます。算術評価(*算術評価を参照)*は、変数に値が割り当てられたときに実行されます。
-r
namesを読み取り専用にします。 これらの名前には、後続の割り当てステートメントによって値を割り当てたり、設定解除したりすることはできません。
-t
各_name_に_trace_属性を付けます。 トレースされる関数は、呼び出しシェルから DEBUG および RETURN トラップを継承します。 トレース属性は、変数に対して特別な意味を持ちません。
-x
環境を介した後続のコマンドへのエクスポート用にnamesをマークします。
「-」の代わりに「」を使用すると、代わりに属性がオフになりますが、例外は * a* を使用して配列変数を破棄できないことです。 関数で使用する場合、 local コマンドと同様に、各_name_をローカルにします。 変数名の後に= valueが続く場合、変数の値は_value_に設定されます。 無効なオプションが検出されない限り、戻り値は0です。`+ -f foo = bar + `を使用して関数を定義しようとし、値を読み取り専用変数に割り当てようとします。複合代入構文を使用せずに配列変数に値(上記の link:#19 [Arrays] を参照)、_ names_の1つが有効なシェル変数名ではない場合、読み取り専用変数の読み取り専用ステータスをオフにしようとします、配列変数の配列ステータスをオフにしようとしたり、*-f *で存在しない関数を表示しようとしたりします。
オプションなしで、現在記憶されているディレクトリのリストを表示します。 デフォルトの表示は、ディレクトリ名がスペースで区切られた1行です。 ディレクトリは、 pushd コマンドを使用してリストに追加されます。 popd コマンドは、リストからエントリを削除します。
Tag
説明
- + * _ n
オプションなしで呼び出されたときに、ゼロから始まる dirs で表示されるリストの左から数えてnthエントリを表示します。
- n
オプションなしで呼び出されたときに、ゼロで始まる dirs で表示されるリストの右から数えてnthエントリを表示します。
-c
すべてのエントリを削除して、ディレクトリスタックをクリアします。
-l
より長いリストを作成します。デフォルトのリスト形式では、チルダを使用してホームディレクトリを示します。
-p
1行に1エントリずつディレクトリスタックを印刷します。
-v
1行に1エントリずつディレクトリスタックを印刷し、各エントリの先頭にスタック内のインデックスを付けます。
無効なオプションが指定されないか、ディレクトリスタックの末尾を超えてインデックスが_n_されない限り、戻り値は0です。
オプションがない場合、各_jobspec_はアクティブなジョブのテーブルから削除されます。 -h オプションが指定されている場合、各_jobspec_はテーブルから削除されませんが、シェルが SIGHUP を受信した場合に SIGHUP がジョブに送信されないようにマークされます。 _jobspec_が存在せず、-a *オプションも *-r オプションも指定されていない場合、_current job_が使用されます。 _jobspec_が指定されていない場合、-a *オプションはすべてのジョブを削除またはマークすることを意味します。 _jobspec_引数なしの *-r オプションは、実行中のジョブに操作を制限します。 _jobspec_が有効なジョブを指定しない限り、戻り値は0です。
スペースで区切られたargsを出力し、その後に改行を続けます。 戻りステータスは常に0です。 -n が指定されている場合、末尾の改行は抑制されます。 -e オプションを指定すると、次のバックスラッシュでエスケープされた文字の解釈が有効になります。 -E オプションは、デフォルトで解釈されるシステムであっても、これらのエスケープ文字の解釈を無効にします。 xpg_echo シェルオプションを使用すると、デフォルトで echo がこれらのエスケープ文字を展開するかどうかを動的に決定できます。 echo は、オプションの終わりを意味する*-を解釈しません。 *echo は、次のエスケープシーケンスを解釈します。
Tag | Description |
---|---|
\a | alert (bell) |
\b | backspace |
\c | suppress trailing newline |
\e | an escape character |
\f | form feed |
\n | new line |
\r | carriage return |
\t | horizontal tab |
\v | vertical tab |
\\ | backslash |
\0nnn | the eight-bit character whose value is the octal value nnn (zero to three octal digits) |
\xHH | the eight-bit character whose value is the hexadecimal value HH (one or two hex digits) |
組み込みシェルコマンドを有効または無効にします。 ビルトインを無効にすると、シェルは通常ディスクコマンドの前にビルトインを検索しますが、フルパス名を指定せずにシェルビルトインと同じ名前のディスクコマンドを実行できます。 -n を使用すると、各_name_は無効になります。そうでない場合は、_names_が有効になります。 たとえば、シェルの組み込みバージョンの代わりに PATH で見つかった test バイナリを使用するには、 `+ enable -n test +`を実行します。 -f オプションは、動的ロードをサポートするシステムで、共有オブジェクト_filename_から新しい組み込みコマンド_name_をロードすることを意味します。 -d オプションは、以前に -f でロードされたビルトインを削除します。 _name_引数が指定されていない場合、または -p オプションが指定されている場合、シェル組み込みコマンドのリストが出力されます。 他のオプション引数がない場合、リストはすべての有効なシェル組み込みコマンドで構成されます。 -n を指定すると、無効なビルトインのみが出力されます。 -a が指定されている場合、出力されるリストにはすべてのビルトインが含まれ、それぞれが有効かどうかが示されます。 -s を指定すると、出力はPOSIX _special_組み込みに制限されます。 _name_がシェル組み込みでない場合、または共有オブジェクトから新しい組み込みをロードする際にエラーが発生しない限り、戻り値は0です。
評価 [arg …]
argsは読み取られ、連結されて単一のコマンドになります。 このコマンドはシェルによって読み取られて実行され、その終了ステータスは eval の値として返されます。 _args_がない場合、または引数がnullのみの場合、 eval は0を返します。
_command_を指定すると、シェルが置き換えられます。 新しいプロセスは作成されません。 _arguments_は_command_の引数になります。 -l オプションを指定すると、シェルは_command_に渡される0番目の引数の先頭にダッシュを置きます。 これが login (1)の機能です。 -c オプションにより、_command_が空の環境で実行されます。 -a を指定すると、シェルは_name_を実行されたコマンドの0番目の引数として渡します。 何らかの理由で_command_を実行できない場合、シェルオプション execfail が有効になっていない限り、非対話型シェルは終了します。 ファイルを実行できない場合、対話型シェルは失敗を返します。 _command_が指定されていない場合、リダイレクトは現在のシェルで有効になり、戻りステータスは0です。 リダイレクトエラーがある場合、戻りステータスは1です。
終了 [n]
シェルを_n_のステータスで終了させます。 _n_が省略された場合、終了ステータスは最後に実行されたコマンドの終了ステータスになります。 シェルが終了する前に、 EXIT のトラップが実行されます。
指定された_names_は、その後実行されるコマンドの環境への自動エクスポート用にマークされます。* -f オプションが指定されている場合、_names_は関数を参照します。 _names_が指定されていない場合、または *-p オプションが指定されている場合、このシェルでエクスポートされるすべての名前のリストが出力されます。 -n オプションを使用すると、各_name_からエクスポートプロパティが削除されます。 変数名の後に= wordが続く場合、変数の値は_word_に設定されます。 export は、無効なオプションが検出されるか、_names_の1つが有効なシェル変数名でないか、関数ではない_name_で -f が指定されない限り、終了ステータス0を返します。
修正コマンド。 最初の形式では、_first_から_last_までのコマンドの範囲が履歴リストから選択されます。 _First_および_last_は、文字列(その文字列で始まる最後のコマンドを見つけるため)または数値(負の数値が現在のコマンド番号からのオフセットとして使用される履歴リストへのインデックス)として指定できます。 _last_が指定されていない場合は、リストの現在のコマンドに設定され( `+ fc -l -10 +`は最後の10個のコマンドを出力します)、そうでない場合は_first_に設定されます。 _first_が指定されていない場合、編集用の前のコマンドとリスト用の-16に設定されます。
2番目の形式では、_pat_の各インスタンスが_rep_に置き換えられた後、_command_が再実行されます。 これで使用する便利なエイリアスは「+ r = ’fc -s」です。したがって、「 r cc 」を入力すると「 cc 」で始まる最後のコマンドが実行され、「 r +」を入力すると最後のコマンドが再実行されます。
最初の形式が使用される場合、無効なオプションが検出されるか、_first_または_last_が範囲外の履歴行を指定しない限り、戻り値は0です。 -e オプションが指定されている場合、戻り値は最後に実行されたコマンドの値、またはコマンドの一時ファイルでエラーが発生した場合は失敗です。 2番目の形式が使用される場合、_cmd_が有効な履歴行を指定しない限り、戻りステータスは再実行されたコマンドのステータスになります。その場合、 fc は失敗を返します。
フォアグラウンドで_jobspec_を再開し、それを現在のジョブにします。 _jobspec_が存在しない場合、_current job_のシェルの概念が使用されます。 戻り値は、フォアグラウンドに置かれたコマンドの戻り値、またはジョブ制御が無効なときに実行される場合、またはジョブ制御が有効な状態で実行される場合、_jobspec_が有効なジョブを指定しない場合、または_jobspec_がジョブ制御なしで開始されたジョブを指定する場合、失敗。
オプションの終わりに達すると、 getopts はゼロより大きい戻り値で終了します。 OPTIND は最初の非オプション引数のインデックスに設定され、 name は?に設定されます。
無効なオプションが表示された場合、 getopts を配置しますか? _name_に入力し、サイレントでない場合はエラーメッセージを出力し、 OPTARG の設定を解除します。 getopts がサイレントの場合、見つかったオプション文字は OPTARG に配置され、診断メッセージは出力されません。
必要な引数が見つからず、 getopts がサイレントでない場合、疑問符(?)が_name_に配置され、 OPTARG が設定解除され、診断メッセージが出力されます。 getopts がサイレントの場合、コロン(:)が_name_に配置され、 OPTARG が見つかったオプション文字に設定されます。
ハッシュ [ -lr ] [ -p filename] [ -dt ] [name]
各_name_について、コマンドの完全なファイル名は、 $ PATH のディレクトリを検索して決定され、記憶されます。 -p オプションを指定すると、パス検索は実行されず、_filename_がコマンドの完全なファイル名として使用されます。 -r オプションを使用すると、シェルは記憶されているすべての場所を忘れます。 -d オプションにより、シェルは各_name_の記憶された場所を忘れます。 -t オプションを指定すると、各_name_が対応するフルパス名が出力されます。 複数の_name_引数が -t で指定されている場合、ハッシュされたフルパス名の前に_name_が出力されます。 -l オプションを使用すると、入力として再利用できる形式で出力が表示されます。 引数が指定されていない場合、または -l のみが指定されている場合、記憶されているコマンドに関する情報が出力されます。 _name_が見つからないか、無効なオプションが指定されない限り、戻りステータスはtrueです。
組み込みコマンドに関する役立つ情報を表示します。 _pattern_が指定されている場合、 help は_pattern_に一致するすべてのコマンドの詳細なヘルプを提供します。それ以外の場合、すべてのビルトインおよびシェル制御構造のヘルプが出力されます。 -s オプションは、表示される情報を短い使用法の概要に制限します。 _pattern_に一致するコマンドがない限り、戻りステータスは0です。
*履歴[ n] 履歴* -c 履歴-d *offset 履歴* -anrw [ファイル名] 履歴 -p arg [arg …] 履歴 -s arg [arg …]
オプションがない場合、コマンド履歴リストを行番号とともに表示します。 でリストされている行 * 変更されました。 の議論 n_は、最後の_n_行のみをリストします。 シェル変数 HISTTIMEFORMAT が設定されており、nullではない場合、_strftime(3)のフォーマット文字列として使用され、表示された各履歴エントリに関連付けられたタイムスタンプが表示されます。 フォーマットされたタイムスタンプと履歴行の間に空白は印刷されません。 _filename_が指定されている場合、それは履歴ファイルの名前として使用されます。そうでない場合は、 HISTFILE の値が使用されます。 オプションが提供される場合、オプションの意味は次のとおりです。
Tag
説明
-c
すべてのエントリを削除して、履歴リストをクリアします。
_offset_の位置にある履歴エントリを削除します。
-a
「新しい」履歴行(現在の bash セッションの開始以降に入力された履歴行)を履歴ファイルに追加します。
-n
履歴ファイルからまだ読み込まれていない履歴行を現在の履歴リストに読み込みます。 これらは、現在の bash セッションの開始以降に履歴ファイルに追加される行です。
-r
履歴ファイルの内容を読み取り、現在の履歴として使用します。
-w
現在の履歴を履歴ファイルに書き込み、履歴ファイルの内容を上書きします。
-p
次の_args_で履歴置換を実行し、結果を標準出力に表示します。 結果を履歴リストに保存しません。 通常の履歴展開を無効にするには、各_arg_を引用符で囲む必要があります。
-s
_args_を単一のエントリとして履歴リストに保存します。 _args_が追加される前に、履歴リストの最後のコマンドが削除されます。
ジョブ [ -lnprs ] [jobspec … ] ジョブ -x コマンド [引数 … ]
最初のフォームはアクティブなジョブをリストします。 オプションには次の意味があります。
Tag
説明
-l
通常の情報に加えて、プロセスIDをリストします。
-p
ジョブのプロセスグループリーダーのプロセスIDのみをリストします。
-n
ユーザーに最後にステータスが通知されてからステータスが変更されたジョブに関する情報のみを表示します。
-r
出力を実行中のジョブに制限します。
-s
出力を停止したジョブに制限します。
_jobspec_が指定されている場合、出力はそのジョブに関する情報に制限されます。 無効なオプションが検出されるか、無効な_jobspec_が指定されない限り、戻りステータスは0です。
_sigspec_または_signum_で指定されたシグナルを、_pid_または_jobspec_で指定されたプロセスに送信します。 _sigspec_は、 SIGKILL (プレフィックス SIG の有無にかかわらず)などの大文字と小文字を区別しないシグナル名、またはシグナル番号です。 _signum_はシグナル番号です。 _sigspec_が存在しない場合、 SIGTERM が想定されます。 引数 -l は信号名をリストします。 -l が指定されているときに引数が指定されると、引数に対応する信号の名前がリストされ、戻りステータスは0になります。 -l の_exit_status_引数は、シグナル番号、またはシグナルによって終了したプロセスの終了ステータスのいずれかを指定する数値です。 kill は、少なくとも1つのシグナルが正常に送信された場合はtrueを返し、エラーが発生したか無効なオプションが検出された場合はfalseを返します。
各_arg_は、評価される算術式です( ARITHMETIC EVALUATION を参照)。 最後の_arg_が0と評価された場合、 let は1を返します。それ以外の場合は0が返されます。
引数ごとに、_name_という名前のローカル変数が作成され、_value_が割り当てられます。 _option_は、 declare で受け入れられる任意のオプションです。 関数内で local を使用すると、変数_name_の可視スコープがその関数とその子に制限されます。 オペランドがない場合、 local はローカル変数のリストを標準出力に書き込みます。 関数内にないときに local を使用するとエラーになります。 関数の外部で local が使用されている場合、無効な_name_が指定されている場合、または_name_が読み取り専用変数である場合を除き、戻りステータスは0です。
ログアウト
ログインシェルを終了します。
ディレクトリスタックからエントリを削除します。 引数なしで、スタックからトップディレクトリを削除し、新しいトップディレクトリに対して cd を実行します。 引数が提供される場合、その意味は次のとおりです。
Tag
説明
+ * _ n
- n
-n
スタックからディレクトリを削除するときにディレクトリの通常の変更を抑制し、スタックのみが操作されるようにします。
書式設定された_arguments_を、format_の制御下で標準出力に書き込みます。 _format_は、3種類のオブジェクトを含む文字列です。標準出力に単純にコピーされるプレーン文字、変換されて標準出力にコピーされる文字エスケープシーケンス、および次の印刷を引き起こすフォーマット仕様連続した_引数。 標準の_printf_(1)形式に加えて、%b *を指定すると、 *printf は対応する_argument_のバックスラッシュエスケープシーケンスを展開します( \ c は出力を終了し、バックスラッシュは \\(aq 、 \ " 、および* \?は削除されず、 *\ 0 で始まる8進エスケープには最大4桁が含まれる場合があります)、%q *により、 *printf は対応する_argument_を再利用可能な形式で出力しますシェル入力。
_format_は、必要に応じて再利用され、すべての_arguments_を消費します。 _format_に必要な_arguments_よりも多くの_arguments_が必要な場合、追加のフォーマット指定は、必要に応じてゼロ値またはヌル文字列が指定されたように動作します。 戻り値は、成功した場合はゼロ、失敗した場合はゼロ以外です。
ディレクトリスタックの最上部にディレクトリを追加するか、スタックを回転して、スタックの新しい最上部を現在の作業ディレクトリにします。 引数なしで、ディレクトリスタックが空でない限り、上位2つのディレクトリを交換し、0を返します。 引数が提供される場合、その意味は次のとおりです。
Tag
説明
- + * _ n
nthディレクトリ( dirs で示されるリストの左から数え、ゼロから始まる)が最上部になるようにスタックを回転します。
- n
nthディレクトリ( dirs で示されるリストの右から数えて、ゼロから始まる)が最上部になるようにスタックを回転します。
-n
スタックにディレクトリを追加するときにディレクトリの通常の変更を抑制し、スタックのみが操作されるようにします。
dir
_dir_を最上部のディレクトリスタックに追加して、新しい現在の作業ディレクトリにします。
現在の作業ディレクトリの絶対パス名を出力します。 -P オプションが指定されている場合、または set 組み込みコマンドの -o physical オプションが有効になっている場合、出力されるパス名にはシンボリックリンクは含まれません。 -L オプションを使用すると、印刷されるパス名にシンボリックリンクが含まれる場合があります。 現在のディレクトリの名前の読み取り中にエラーが発生するか、無効なオプションが指定されない限り、戻りステータスは0です。
読み取り [ -ers ] [ -u fd] [ -t timeout] [ -a aname] [ -p prompt] [ -n nchars] [ -d delim ] [name …]
標準入力、または -u オプションの引数として指定されたファイル記述子_fd_から1行が読み取られ、最初の単語が最初の_name_に割り当てられ、2番目の単語が2番目の_name_に割り当てられます。残りの単語とその間にある区切り文字が最後の_name_に割り当てられます。 入力ストリームから読み取られる単語が名前よりも少ない場合、残りの名前には空の値が割り当てられます。 IFS の文字は、行を単語に分割するために使用されます。 バックスラッシュ文字( \ )を使用して、次に読み込む文字および行の継続の特別な意味を削除することができます。 オプションが提供される場合、オプションの意味は次のとおりです。
Tag
説明
単語は、0から始まる配列変数_aname_の連続インデックスに割り当てられます。 _aname_は、新しい値が割り当てられる前に設定解除されます。 他の_name_引数は無視されます。
_delim_の最初の文字は、改行ではなく入力行の終了に使用されます。
-e
標準入力が端末から来る場合、 readline (上記の link:#42 [READLINE] を参照)を使用して行を取得します。
入力を読み取ろうとする前に、末尾の改行なしで標準エラーで_prompt_を表示します。 プロンプトは、端末からの入力の場合にのみ表示されます。
-r
バックスラッシュはエスケープ文字として機能しません。 円記号は行の一部と見なされます。 特に、円記号と改行のペアは行継続として使用できません。
-s
サイレントモード 入力が端末から来ている場合、文字はエコーされません。
入力の完全な行が_timeout_秒以内に読み取られない場合、 read がタイムアウトし、失敗を返します。 read が端末またはパイプから入力を読み取っていない場合、このオプションは効果がありません。
ファイル記述子_fd_から入力を読み取ります。
_names_が指定されていない場合、読み取られた行は変数 REPLY に割り当てられます。 ファイルの終わりが検出されるか、 read がタイムアウトするか、無効なファイル記述子が -u の引数として指定されない限り、戻りコードはゼロです。
読み取り専用 [ -apf ] [name _ [= _ word] …]
指定された_names_は読み取り専用としてマークされます。これらの_names_の値は、後続の割り当てによって変更されることはありません。 -f オプションを指定すると、_names_に対応する関数がそのようにマークされます。 -a オプションは、変数を配列に制限します。 _name_引数が指定されていない場合、または -p オプションが指定されている場合、すべての読み取り専用名のリストが出力されます。 -p オプションを使用すると、入力として再利用できる形式で出力が表示されます。 変数名の後に= wordが続く場合、変数の値は_word_に設定されます。 無効なオプションが検出されるか、_names_の1つが有効なシェル変数名でない場合、または関数ではない_name_で -f が指定されない限り、戻りステータスは0です。
戻る [n]
_n_で指定された戻り値で関数を終了させます。 _n_が省略された場合、戻りステータスは関数本体で最後に実行されたコマンドのステータスです。 関数の外部で使用されたが、スクリプトの実行中に * ( source )コマンド、シェルの実行を停止します そのスクリプトは、_n_またはスクリプト内で最後に実行されたコマンドの終了ステータスを、スクリプトの終了ステータスとして返します。 。*によるスクリプトの実行中ではなく、関数の外部で使用された場合、戻りステータスはfalseです。 *RETURN トラップに関連付けられたコマンドは、関数またはスクリプトの後に実行が再開される前に実行されます。
オプションがない場合、各シェル変数の名前と値は、現在設定されている変数を設定またはリセットするための入力として再利用できる形式で表示されます。 読み取り専用変数はリセットできません。 _posix mode_では、シェル変数のみがリストされます。 出力は、現在のロケールに従ってソートされます。 オプションを指定すると、シェル属性を設定または設定解除します。 オプションの処理後に残った引数は、位置パラメータの値として扱われ、順番に $ 1 、 $ 2 、 … * $ * nに割り当てられます。 オプションが指定されている場合、次の意味があります。
Tag
説明
-a
後続のコマンドの環境にエクスポートするために変更または作成された変数と関数を自動的にマークします。
-b
次のプライマリプロンプトの前ではなく、終了したバックグラウンドジョブのステータスをすぐに報告します。 これは、ジョブ制御が有効になっている場合にのみ有効です。
-e
simple command(上記の SHELL GRAMMAR を参照)がゼロ以外のステータスで終了した場合、すぐに終了します。 失敗したコマンドが while または until キーワードの直後のコマンドリストの一部、_if_ステートメントのテストの一部、 && または || リストの一部である場合、シェルは終了しません。または、コマンドの戻り値が*!によって反転されている場合。 *ERR のトラップは、設定されている場合、シェルが終了する前に実行されます。
-f
パス名の展開を無効にします。
-h
実行のために検索されるコマンドの場所を覚えておいてください。 これはデフォルトで有効になっています。
-k
コマンド名の前の引数だけでなく、割り当てステートメントの形式のすべての引数がコマンドの環境に配置されます。
-m
モニターモード。 ジョブ制御が有効になります。 このオプションは、それをサポートするシステム上の対話型シェルに対してデフォルトでオンになっています(上記の JOB CONTROL を参照)。 バックグラウンドプロセスは別のプロセスグループで実行され、終了ステータスを含む行が完了すると出力されます。
-n
コマンドを読み取りますが、実行しません。 これは、シェルスクリプトの構文エラーをチェックするために使用できます。 これは、対話型シェルでは無視されます。
_option-name_は次のいずれかです。
Tag
説明
emacsスタイルのコマンドライン編集インターフェイスを使用します。 これは、シェルが*-noediting *オプションで起動されない限り、シェルが対話型の場合にデフォルトで有効になります。
ハシャル
歴史
上記の link:#53 [HISTORY] で説明されているように、コマンド履歴を有効にします。 このオプションは、対話型シェルではデフォルトでオンになっています。
その効果は、シェルコマンド `+ IGNOREEOF = 10 +`が実行された場合と同じです(上記の link:#18 [Shell Variables] を参照)。
キーワード
モニター
通知
物理
設定されている場合、パイプラインの戻り値は、ゼロ以外のステータスで終了する最後の(右端)コマンドの値、またはパイプライン内のすべてのコマンドが正常に終了した場合はゼロです。 このオプションはデフォルトで無効になっています。
デフォルトの動作がPOSIX標準とは異なる bash の動作を変更して、標準(posix mode)に一致させます。
特権
詳細
vi
viスタイルのコマンドライン編集インターフェイスを使用します。
-p
_privileged_モードをオンにします。 このモードでは、 $ ENV および $ BASH_ENV ファイルは処理されず、シェル関数は環境から継承されず、 SHELLOPTS 変数が環境に表示されても無視されます。 実効ユーザー(グループ)IDが実ユーザー(グループ)IDと等しくない状態でシェルが開始され、-p *オプションが指定されていない場合、これらのアクションが実行され、実効ユーザーIDが実ユーザーに設定されます。 id。 起動時に *-p オプションが指定された場合、有効なユーザーIDはリセットされません。 このオプションをオフにすると、有効なユーザーIDとグループIDが実際のユーザーIDとグループIDに設定されます。
-t
1つのコマンドを読み取って実行した後、終了します。
-u
パラメータ展開を実行するときに、未設定の変数をエラーとして扱います。 設定されていない変数を展開しようとすると、シェルはエラーメッセージを出力し、対話型でない場合はゼロ以外のステータスで終了します。
-v
シェル入力行を読み取ったときに出力します。
-x
各_simple command _、 for コマンド、 case コマンド、 select コマンド、または算術 for コマンドを展開した後、 PS4 の展開値を表示し、その後にコマンドとその展開された引数または関連する単語リストを表示します。
-B
シェルはブレース展開を実行します(上記の link:#21 [ブレース展開] を参照)。 これはデフォルトでオンになっています。
-C
設定されている場合、 bash は*> 、>&、および *<> リダイレクト演算子で既存のファイルを上書きしません。 これは、> *ではなくリダイレクト演算子> | *を使用して出力ファイルを作成するときに上書きされる場合があります。
-E
設定すると、 ERR のトラップは、シェル関数、コマンド置換、およびサブシェル環境で実行されるコマンドに継承されます。 このような場合、 ERR トラップは通常継承されません。
-H
- !*スタイルの履歴置換を有効にします。 シェルが対話型の場合、このオプションはデフォルトでオンになっています。
-P
設定すると、現在の作業ディレクトリを変更する cd などのコマンドを実行するときに、シェルはシンボリックリンクをたどりません。 代わりに物理ディレクトリ構造を使用します。 デフォルトでは、現在のディレクトリを変更するコマンドを実行するとき、 bash はディレクトリの論理チェーンに従います。
-T
設定すると、 DEBUG および RETURN のトラップは、シェル関数、コマンド置換、およびサブシェル環境で実行されるコマンドに継承されます。 このような場合、 DEBUG および RETURN トラップは通常継承されません。
--
このオプションの後に引数がない場合、位置パラメータは設定解除されます。 それ以外の場合、位置パラメータは、それらの一部が*-*で始まっていてもargsに設定されます。
- - *
オプションの終了を通知し、残りのargsをすべて位置パラメーターに割り当てます。* -x および *-v オプションはオフになっています。 argsがない場合、位置パラメータは変更されません。
特に指定がない限り、オプションはデフォルトでオフになっています。 -ではなく+を使用すると、これらのオプションがオフになります。 オプションは、シェルの呼び出しに対する引数として指定することもできます。 現在のオプションのセットは、* $-*にあります。 無効なオプションが検出されない限り、戻りステータスは常にtrueです。
- シフト *[n]
n + 1からの定位置パラメーター…* $ 1 * …. に名前が変更され、* $#から $#* -n + 1までの数字で表されるパラメーターが設定解除されます。 _n_は、* $#以下の負でない数でなければなりません。 _n_が0の場合、パラメーターは変更されません。 _n_が指定されていない場合、1と見なされます。 _n_が $#より大きい場合、位置パラメーターは変更されません。 _n_が $#*より大きいかゼロより小さい場合、戻りステータスはゼロより大きくなります。それ以外の場合は0。
オプションのシェルの動作を制御する変数の値を切り替えます。 オプションなし、または -p オプションを使用すると、設定可能なすべてのオプションのリストが表示され、それぞれが設定されているかどうかが示されます。 -p オプションを使用すると、入力として再利用できる形式で出力が表示されます。 他のオプションには次の意味があります。
Tag
説明
-s
各_optname_を有効化(設定)します。
-u
各_optname_を無効(設定解除)にします。
-q
通常の出力を抑制します(静かなモード)。戻りステータスは、_optname_が設定されているか設定解除されているかを示します。 複数の_optname_引数が -q で指定されている場合、すべての_optnames_が有効になっていると戻りステータスはゼロになります。それ以外の場合はゼロ以外。
-o
_optname_の値を、 set ビルトインの -o オプションに対して定義された値に制限します。
オプションをリストするときの戻りステータスは、すべての_optnames_が有効な場合はゼロ、そうでない場合はゼロ以外です。 オプションを設定または設定解除する場合、_optname_が有効なシェルオプションでない限り、戻りステータスはゼロです。
Tag
説明
設定されている場合、ディレクトリではない cd 組み込みコマンドへの引数は、値が変更するディレクトリである変数の名前であると想定されます。
設定すると、 cd コマンドのディレクトリコンポーネントのスペルの小さなエラーが修正されます。 チェックされるエラーは、転置文字、欠落文字、および1文字が多すぎます。 修正が見つかった場合、修正されたファイル名が出力され、コマンドが続行されます。 このオプションは、対話型シェルでのみ使用されます。
チェックハッシュ
設定されている場合、 bash は、ハッシュテーブルで見つかったコマンドが実行される前に存在することを確認します。 ハッシュされたコマンドがもう存在しない場合、通常のパス検索が実行されます。
設定されている場合、 bash は各コマンドの後にウィンドウサイズをチェックし、必要に応じて LINES および COLUMNS の値を更新します。
設定されている場合、 bash は、同じ履歴エントリに複数行コマンドのすべての行を保存しようとします。 これにより、複数行のコマンドを簡単に再編集できます。
ドットグロブ
設定されている場合、 bash には、パス名展開の結果に「。」で始まるファイル名が含まれます。
設定されている場合、 exec 組み込みコマンドの引数として指定されたファイルを実行できない場合、非対話型シェルは終了しません。 exec が失敗した場合、対話型シェルは終了しません。
設定されている場合、エイリアスは上記の link:#36 [ALIASES] で説明されているように展開されます。 このオプションは、対話型シェルではデフォルトで有効になっています。
設定すると、デバッガーによる使用を目的とした動作が有効になります。
Tag | Description |
---|---|
*1. * | The* -F option to the declare* builtin displays the source file name and line number corresponding to each function name supplied as an argument. |
*2. * | If the command run by the* DEBUG* trap returns a non-zero value, the next command is skipped and not executed. |
*3. * | If the command run by the* DEBUG trap returns a value of 2, and the shell is executing in a subroutine (a shell function or a shell script executed by the . or source builtins), a call to return* is simulated. |
4. | BASH_ARGC *and BASH_ARGV* are updated as described in their descriptions above. |
*5. * | Function tracing is enabled: command substitution, shell functions, and subshells invoked with* ( command ) inherit the DEBUG and RETURN* traps. |
*6. * | Error tracing is enabled: command substitution, shell functions, and subshells invoked with* ( command ) inherit the ERROR* trap. |
設定すると、上記の link:#28 [Pathname Expansion] で説明した拡張パターンマッチング機能が有効になります。
引用符
設定されている場合、 $ \(aq_string _ \(aqおよび $ "_ string_"の引用は、二重引用符で囲まれた** $ \ {* parameter } *展開内で実行されます。 このオプションはデフォルトで有効になっています。
設定すると、パス名の展開中にファイル名と一致しないパターンは、展開エラーになります。
設定されている場合、 FIGNORE シェル変数で指定されたサフィックスにより、無視される単語が唯一の補完候補であっても、単語補完を実行するときに単語が無視されます。 FIGNORE の説明については、上記の link:#18 [SHELL VARIABLES] を参照してください。 このオプションはデフォルトで有効になっています。
設定すると、シェルエラーメッセージは標準のGNUエラーメッセージ形式で書き込まれます。
設定すると、シェルを終了するときに、ファイルを上書きするのではなく、 HISTFILE 変数の値で指定されたファイルに履歴リストが追加されます。
設定され、 readline が使用されている場合、失敗した履歴置換を再編集する機会がユーザーに与えられます。
設定され、 readline が使用されている場合、履歴置換の結果はすぐにはシェルパーサーに渡されません。 代わりに、結果の行が readline 編集バッファーにロードされ、さらに変更できるようになります。
ホスト完了
設定され、 readline が使用されている場合、 bash は、 @ を含む単語が完了するときにホスト名の補完を実行しようとします(* link:#42 [READLINEの下の link:#49 [Completing] を参照) ] *上記)。 これはデフォルトで有効になっています。
設定した場合、 bash は、対話型ログインシェルが終了したときにすべてのジョブに SIGHUP を送信します。
設定されている場合、#*で始まる単語を許可して、その単語とその行の残りのすべての文字を対話型シェルで無視します(上記の *link:#13 [COMMENTS] を参照)。 このオプションはデフォルトで有効になっています。
リソリスト
設定され、 cmdhist オプションが有効な場合、複数行のコマンドは、可能であればセミコロン区切り文字を使用するのではなく、改行が埋め込まれた履歴に保存されます。
ログインシェルとして起動された場合、シェルはこのオプションを設定します(上記の link:#6 [INVOCATION] を参照)。 値は変更できません。
メール警告
設定されていて、 bash がメールをチェックしているファイルが最後にチェックされてからアクセスされた場合、「 'mail in mailfile has been read'」というメッセージが表示されます。
設定され、 readline が使用されている場合、 bash は、空行で補完が試行されたときに、 PATH で可能な補完を検索しようとしません。
設定されている場合、 bash はパス名の展開を実行するときに大文字と小文字を区別しない方法でファイル名と一致します(上記の link:#28 [パス名の展開] を参照)。
設定されている場合、 bash は、 case または* [[条件付きコマンドの実行中にマッチングを実行するときに、大文字と小文字を区別しない方法でパターンをマッチングします。
設定されている場合、 bash は、ファイルに一致しないパターン(上記の link:#28 [パス名の展開] を参照)が、それ自体ではなくヌル文字列に展開することを許可します。
設定すると、プログラム可能な補完機能(上記の link:#52 [Programmable Completion] を参照)が有効になります。 このオプションはデフォルトで有効になっています。
プロンプト変数
設定されている場合、プロンプト文字列は、上記の link:#41 [PROMPTING] で説明されているように展開された後、パラメータ展開、コマンド置換、算術展開、および引用符の削除を受けます。 このオプションはデフォルトで有効になっています。
制限モードで起動された場合、シェルはこのオプションを設定します(下記の RESTRICTED SHELL を参照)。 値は変更できません。 これは、起動ファイルが実行されてもリセットされないため、起動ファイルはシェルが制限されているかどうかを検出できます。
設定すると、シフトカウントが位置パラメータの数を超えると、 shift ビルトインはエラーメッセージを出力します。
ソースパス
設定されている場合、 source (。)ビルトインは PATH の値を使用して、引数として提供されたファイルを含むディレクトリを見つけます。 このオプションはデフォルトで有効になっています。
設定されている場合、組み込みの echo はデフォルトでバックスラッシュエスケープシーケンスを展開します。
中断 [ -f ]
テスト *expr [ expr ] *
条件式_expr_の評価に応じて、0または1のステータスを返します。 各演算子とオペランドは個別の引数でなければなりません。 式は、 CONDITIONAL EXPRESSIONS で説明したプライマリーで構成されます。 test はオプションを受け入れません。また、オプションの終わりを示す*-*の引数を受け入れて無視しません。
式は、次の演算子を使用して結合できます。これらの演算子は、優先順位の高い順にリストされています。
Tag
説明
! expr
_expr_がfalseの場合はtrue。
( expr)
_expr_の値を返します。 これは、演算子の通常の優先順位をオーバーライドするために使用できます。
expr1- a expr2
_expr1_と_expr2_の両方が真の場合は真。
expr1- o expr2
_expr1_または_expr2_のいずれかがtrueの場合、true。
引数なし
式は偽です。
1つの引数
引数がnullでない場合にのみ、式はtrueです。
2つの引数
最初の引数が*!の場合、2番目の引数がnullの場合にのみ、式はtrueです。 最初の引数が上記の *CONDITIONAL EXPRESSIONS にリストされている単項条件演算子の1つである場合、単項テストが真であれば式は真になります。 最初の引数が有効な単項条件演算子でない場合、式は偽です。
3つの引数
2番目の引数が上記の CONDITIONAL EXPRESSIONS にリストされているバイナリ条件演算子のいずれかである場合、式の結果はオペランドとして1番目と3番目の引数を使用したバイナリテストの結果になります。 最初の引数が*!の場合、値は2番目と3番目の引数を使用した2引数テストの否定です。 最初の引数が正確に(であり、3番目の引数が正確に)である場合、結果は2番目の引数の1つの引数のテストになります。 それ以外の場合、式は偽です。 この場合、-a および *-o 演算子はバイナリ演算子と見なされます。
4つの引数
最初の引数が*!*の場合、結果は残りの引数で構成される3つの引数の式の否定になります。 それ以外の場合、式は上記のルールを使用して優先順位に従って解析および評価されます。
5つ以上の引数
式は、上記のルールを使用して優先順位に従って解析および評価されます。
回
シェルおよびシェルから実行されるプロセスの累積ユーザー時間とシステム時間を出力します。 戻りステータスは0です。
コマンド_arg_は、シェルがシグナル_sigspec_を受信したときに読み取られて実行されます。 arg_が存在しない場合(および_sigspec_が1つだけ)または*-の場合、指定された各シグナルは元の処理(シェルに入ったときの値)にリセットされます。 _arg_がヌル文字列の場合、各_sigspec_によって指定されたシグナルは、シェルとそれが呼び出すコマンドによって無視されます。 _arg_が存在せず、-p が指定されている場合、各_sigspec_に関連付けられているトラップコマンドが表示されます。 引数が指定されていない場合、または *-p のみが指定されている場合、 trap は各信号に関連付けられたコマンドのリストを出力します。 -l オプションを使用すると、シェルはシグナル名とそれに対応する番号のリストを出力します。 各_sigspec_は、<signal.h>で定義されているシグナル名、またはシグナル番号です。 シグナル名は大文字と小文字を区別せず、SIGプレフィックスはオプションです。 _sigspec_が EXIT (0)の場合、コマンド_arg_はシェルの終了時に実行されます。 _sigspec_が DEBUG の場合、コマンド_arg_は、すべての_simple command _、 for_コマンド、_case_コマンド、_select_コマンド、すべての算術_for_コマンドの前、および最初のコマンドがシェル関数で実行される前に実行されます(上記の SHELL GRAMMAR を参照) 。 DEBUG トラップへの影響の詳細については、 shopt ビルトインの extdebug オプションの説明を参照してください。 _sigspec_が ERR の場合、単純なコマンドの終了ステータスがゼロ以外の場合、次の条件に従って、_arg_コマンドが実行されます。 失敗したコマンドが、 while または until キーワードの直後のコマンドリストの一部、_if_ステートメントのテストの一部、 && または || の一部である場合、 ERR トラップは実行されません。リスト、またはコマンドの戻り値が*!によって反転されている場合。 これらは、 *errexit オプションが従うのと同じ条件です。 _sigspec_が RETURN の場合、コマンド_arg_は、シェル関数またはスクリプトで実行されるたびに実行されます * または source builtinsの実行が終了します。 シェルに入るときに無視されるシグナルは、トラップまたはリセットできません。 無視されていないトラップされたシグナルは、子プロセスの作成時に元の値にリセットされます。 _sigspec_が無効な場合、戻りステータスはfalseです。それ以外の場合、 trap はtrueを返します。
タイプ [ -aftpP ] name [name …]
オプションなしで、各_name_をコマンド名として使用した場合にどのように解釈されるかを示します。 -t オプションが使用される場合、 type は、name_がエイリアス、シェル予約語、関数、組み込み、またはディスクファイルである場合、_alias _、 keyword 、 function 、 builtin_、または_file_のいずれかである文字列を出力します。 _name_が見つからない場合、何も出力されず、終了ステータスfalseが返されます。 -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 は、引数のいずれかが見つかった場合はtrueを返し、見つからない場合はfalseを返します。
そのような制御を許可するシステムで、シェルおよびシェルによって開始されたプロセスで使用可能なリソースを制御します。 -H および -S オプションは、指定されたリソースにハード制限またはソフト制限が設定されることを指定します。 ハード制限は、一度設定すると増やすことはできません。ソフト制限は、ハード制限の値まで増やすことができます。 -H と -S のどちらも指定しない場合、ソフト制限とハード制限の両方が設定されます。 _limit_の値は、リソースに指定された単位の数値、または現在のハード制限、現在のソフト制限、無制限を表す特別な値 hard 、 soft 、または unlimited のいずれかです。 、それぞれ。 _limit_を省略すると、*-H *オプションが指定されていない限り、リソースのソフト制限の現在の値が出力されます。 複数のリソースを指定すると、値の前に制限名と単位が出力されます。 他のオプションは次のように解釈されます。
Tag
説明
-a
現在の制限はすべて報告されます
-c
作成されるコアファイルの最大サイズ
-d
プロセスのデータセグメントの最大サイズ
-e
最大スケジューリング優先度( "nice")
-f
シェルとその子によって書き込まれるファイルの最大サイズ
-i
保留信号の最大数
-l
メモリにロックされる可能性のある最大サイズ
-m
常駐セットの最大サイズ(Linuxには影響しません)
-n
オープンファイル記述子の最大数(ほとんどのシステムでは、この値を設定できません)
-p
512バイトブロック単位のパイプサイズ(これは設定されない場合があります)
-q
POSIXメッセージキューの最大バイト数
-r
最大リアルタイムスケジューリング優先度
-s
最大スタックサイズ
-t
秒単位のCPU時間の最大量
-u
単一のユーザーが利用できるプロセスの最大数
-v
シェルで使用可能な仮想メモリの最大量
-x
ファイルロックの最大数
_limit_が指定されている場合、それは指定されたリソースの新しい値です( -a オプションは表示のみです)。 オプションが指定されていない場合、-f *が想定されます。 値は1024バイト単位です。ただし、-t (秒単位)、-p (512バイトブロック単位)、-n および *-u (スケールなしの値) 。 無効なオプションまたは引数が指定されない限り、または新しい制限の設定中にエラーが発生しない限り、戻りステータスは0です。
ユーザーファイル作成マスクは_mode_に設定されます。 _mode_が数字で始まる場合、8進数として解釈されます。それ以外の場合は、 chmod (1)で受け入れられるものと同様のシンボリックモードマスクとして解釈されます。 _mode_を省略すると、マスクの現在の値が出力されます。 -S オプションを使用すると、マスクが記号形式で印刷されます。デフォルトの出力は8進数です。 -p オプションが指定され、_mode_が省略された場合、出力は入力として再利用できる形式になります。 モードが正常に変更された場合、または_mode_引数が指定されなかった場合、戻りステータスは0であり、そうでない場合はfalseです。
定義されたエイリアスのリストから各_name_を削除します。 -a を指定すると、すべてのエイリアス定義が削除されます。 指定された_name_が定義されたエイリアスでない限り、戻り値はtrueです。
未設定 [- fv ] [name …]
各_name_について、対応する変数または関数を削除します。 オプションが指定されていない場合、または -v オプションが指定されている場合、各_name_はシェル変数を参照します。 読み取り専用変数は設定解除できません。 -f が指定されている場合、各_name_はシェル関数を参照し、関数定義は削除されます。 設定されていない変数または関数はそれぞれ、後続のコマンドに渡される環境から削除されます。 RANDOM 、 SECONDS 、 LINENO 、 HISTCMD 、 FUNCNAME 、 GROUPS 、または DIRSTACK のいずれかが設定されていない場合、それらはその後リセットされても特別なプロパティを失います。 _name_が読み取り専用でない限り、終了ステータスはtrueです。
待機 [n …]
指定された各プロセスを待ち、その終了ステータスを返します。 各_n_は、プロセスIDまたはジョブ仕様です。ジョブの仕様が指定されている場合、そのジョブのパイプライン内のすべてのプロセスが待機されます。 _n_が指定されていない場合、現在アクティブなすべての子プロセスが待機され、戻りステータスはゼロになります。 _n_が存在しないプロセスまたはジョブを指定する場合、戻りステータスは127です。 それ以外の場合、戻り状況は最後に待機していたプロセスまたはジョブの終了状況です。
制限されたシェル
Tag
説明
o
o
o
o
o
o
起動時にシェル環境から関数定義をインポートする
o
起動時にシェル環境から SHELLOPTS の値を解析します
o
>、> |、<>、>&、&>、および>>リダイレクト演算子を使用した出力のリダイレクト
o
o
o
o
o
シェルスクリプトであることがわかったコマンドが実行されると(上記の COMMAND EXECUTION を参照)、 rbash は、スクリプトを実行するために生成されたシェルの制限をオフにします。
関連項目
Tag
説明
Bashリファレンスマニュアル、Brian FoxおよびChet Ramey The Gnu Readline Library、Brian FoxおよびChet Ramey The Gnu History Library、Brian FoxおよびChet Ramey Portable Operating System Interface(POSIX)Part 2:Shell and Utilities、IEEE sh(1)、ksh (1)、_ csh_(1)emacs(1)、_ vi_(1)readline(3)
ファイル
Tag
説明
/bin/bash
/etc/profile
ログインシェル用に実行されるシステム全体の初期化ファイル
〜/.bash_profile
ログインシェル用に実行される個人用初期化ファイル
〜/.bashrc
対話型シェルごとの個別の起動ファイル
〜/.bash_logout
ログインシェルの終了時に実行される個別のログインシェルクリーンアップファイル
〜/.inputrc
個々の_readline_初期化ファイル
作者
Chet Ramey、[[2]]
バグレポート
- bash、bash * ftp://ftp.gnu.org/pub/bash/
バグが実際に存在することを確認したら、_bashbug_コマンドを使用してバグレポートを送信します。 修正がある場合は、同様にメールすることをお勧めします! 提案や「哲学的な」バグレポートは、_bug-bash @ gnu.org_に郵送するか、Usenetニュースグループ gnu.bash.bug に投稿できます。
すべてのバグレポートには以下を含める必要があります。
Tag
説明
bashbug
このマニュアルページに関するコメントとバグレポートは、_chet @ po.cwru.edu_に送信してください。
BUGS
大きすぎて遅すぎます。
主に POSIX 仕様が原因で、 bash と sh の従来のバージョンとの間には微妙な違いがいくつかあります。
エイリアスはいくつかの用途で混乱を招きます。
シェルの組み込みコマンドおよび関数は、停止/再起動できません。
複合コマンドと「a;」形式のコマンドシーケンスb; c 'は、プロセスの中断が試行されたときに適切に処理されません。 プロセスが停止すると、シェルはシーケンス内の次のコマンドをすぐに実行します。 コマンドのシーケンスを括弧で囲んでサブシェルに強制するだけで十分です。サブシェルはユニットとして停止できます。
- $( … )*コマンド置換内のコマンドは、置換が試行されるまで解析されません。 これにより、コマンドの入力後しばらく時間が経過するまでエラーの報告が遅れます。 たとえば、シェルコメント内であっても一致しない括弧は、コンストラクトの読み取り中にエラーメッセージが表示されます。
配列変数は(まだ)エクスポートできません。
複数のループから抜け出すときに、最も外側のループが複数のコマンドで構成されている場合、break and continueの終了ステータスは失われます。 リンク:/unix_commands/index [previous]リンク:/unix_commands/index [next]リンク:/cgi-bin/printversion.cgi?tutorial = unix_commands&file = bash [Printer Friendly]
Advertisements |