Skip to main content

Linux - Unixコマンド:bash

【NGSハンズオン】UNIX/Linuxとスクリプト言語 - シェルスクリプト入門 (六月 2025)

【NGSハンズオン】UNIX/Linuxとスクリプト言語 - シェルスクリプト入門 (六月 2025)
Anonim

Linuxコマンド バッシュsh標準入力またはファイルから読み取られたコマンドを実行する、互換性のあるコマンド言語インタープリター。バッシュ KornおよびCシェルの有用な機能も組み込まれています(ksh そしてcsh).

バッシュオプション

シェルスクリプトの説明に記載されているシングルキャラクタシェルオプションに加えてセット 組み込みコマンド、バッシュ 呼び出されたときに以下のオプションを解釈します。

  • -c 文字列: もし-c オプションが存在する場合、コマンドは 文字列 。引数の後ろに 文字列 で始まる位置パラメータに割り当てられます。$0.
  • -私: もし-私 オプションが存在する場合、シェルは インタラクティブ .
  • -l: メイクバッシュ あたかもログインシェルとして起動されたかのように動作します。
  • -r: もし-r オプションが存在する場合、シェルは次のようになります。 制限された。
  • -s: もし-s オプションが存在する場合、またはオプション処理後に引数が残っていない場合は、標準入力からコマンドが読み込まれます。このオプションは、対話型シェルを呼び出すときに位置パラメーターを設定できるようにします。
  • -D: すべての二重引用符付き文字列のリスト。$ 標準出力に表示されます。これらは現在のロケールがそうでないときに言語変換の対象となる文字列ですC またはPOSIX。これは、n オプション;コマンドは実行されません。
  • - + O shopt_option : shopt_option シェルが受け入れたシェルオプションの1つですshopt ビルトイン。もし shopt_option 存在する場合、-O そのオプションの値を設定し、+ O それを設定解除します。もし shopt_option が指定されていない場合は、shopt 標準出力に表示されます。呼び出しオプションが + O出力は、入力として再使用可能な形式で表示されます。
  • --: A-- オプションの終了を通知し、さらにオプション処理を無効にします。後の引数-- ファイル名と引数として扱われます。の議論---.

バッシュ また、複数の文字のオプションの数を解釈します。これらのオプションは、単一文字オプションが認識される前にコマンドラインに表示されなければなりません。

  • --dump-po-strings: に相当-D、出力はGNUにあります gettext ポー (ポータブルオブジェクト)ファイル形式です。
  • --dump-strings: に相当-D.
  • - 助けて:標準出力に使用法メッセージを表示し、正常終了する。
  • --init-file: ファイル そして --rcfile ファイル :からコマンドを実行する ファイル 標準の個人用初期設定ファイル 〜/ .bashrc シェルがインタラクティブである場合。
  • - ログイン: に相当-l.
  • - noediting:GNUを使わない読み込まれた行 シェルがインタラクティブなときにコマンドラインを読むためのライブラリ。
  • --noprofile:システム全体のスタートアップファイルを読み込まない / etc / profile または任意の個人用初期設定ファイル 〜/ .bash_profile , 〜/ .bash_login 、または 〜/ .profile 。デフォルトでは、バッシュ ログインシェルとして呼び出されたときにこれらのファイルを読み込みます。
  • --norc:個人用初期設定ファイルを読み込んで実行しない 〜/ .bashrc シェルがインタラクティブである場合。このオプションは、シェルがsh.
  • --posix:の動作を変更するバッシュ デフォルトの動作がPOSIX標準と異なる場合、標準と一致する( posixモード ).
  • - 制限付き:シェルが制限されます。
  • --rpm-requires: シェルスクリプトを実行するために必要なファイルのリストを作成します。これは '-n'を意味し、コンパイル時のエラーチェックのチェックと同じ制限があります。バッククォート、テスト、およびエバールは解析されないため、いくつかの依存関係が見落とされる可能性があります。
  • - 詳細: に相当-v.
  • - バージョン: このインスタンスのバージョン情報を表示するバッシュ 標準出力で正常に終了します。

引数

オプション処理後に引数が残っていて、-c また-s オプションが指定された場合、最初の引数はシェルコマンドを含むファイルの名前とみなされます。もし バッシュ この方法で呼び出され、$0 ファイルの名前に設定され、位置パラメーターは残りの引数に設定されます。バッシュ このファイルからコマンドを読み込んで実行します。終了します。バッシュの終了ステータスは、スクリプトで最後に実行されたコマンドの終了ステータスです。コマンドが実行されていない場合、終了ステータスは0です。まず、現在のディレクトリでファイルを開くように試みます。ファイルが見つからない場合、シェルはパス スクリプトのために。

呼び出し

A ログインシェル 引数0の最初の文字がaであるもの-、または - ログイン オプション。

アン インタラクティブ シェルは、オプションではない引数なし​​で-c 標準入力と出力の両方が端末に接続されている アイザティ (3)で始まるもの、または-私 オプション。PS1 設定されている $- bashがインタラクティブであれば、シェルスクリプトやスタートアップファイルがこの状態をテストできるようになります。

次の段落では、バッシュ 起動ファイルを実行します。いずれかのファイルが存在するが読み込めない場合は、バッシュ エラーを報告します。ティルダはティルド展開で説明されているようにファイル名で展開されます。

いつバッシュ 対話型ログインシェルとして、または非対話型シェルとして呼び出されます。 - ログイン オプションを指定すると、まずファイルからコマンドを読み込んで実行します / etc / profile そのファイルが存在するかどうかを調べます。そのファイルを読み終えたら、それを探します 〜/ .bash_profile , 〜/ .bash_login 、および 〜/ .profile 存在し、読み取り可能な最初のコマンドからコマンドを読み取り、実行します。ザ--noprofile この動作を抑制するためにシェルが起動されたときに、オプションを使用することができます。

ログインシェルが終了すると、バッシュ ファイルからコマンドを読み込んで実行する 〜/ .bash_logout 、それが存在する場合。

ログインシェルではない対話シェルが開始されると、バッシュ コマンドを読み込んで実行する 〜/ .bashrc そのファイルが存在するかどうかを調べます。これは、--norc オプション。ザ--rcfile ファイル オプションは強制するバッシュ からのコマンドの読み取りと実行 ファイル の代わりに 〜/ .bashrc .

いつバッシュ 非対話的に起動されます。たとえば、シェルスクリプトを実行するために、変数を探しますBASH_ENV 環境内に存在する場合はその値を展開し、展開された値を読み取りおよび実行するファイルの名前として使用します。バッシュ 次のコマンドが実行されたかのように動作します。

if -n "$ BASH_ENV";次に。 "$ BASH_ENV"; fi

しかし、パス 変数はファイル名の検索には使用されません。

もしバッシュ 名前で呼び出されますsh、歴史的なバージョンの起動時の動作を模倣しようとします。sh POSIX規格にも準拠しながら、可能な限り密接に連携します。対話型ログインシェルまたは非対話シェルとして起動された場合 - ログイン オプションを指定すると、まずコマンドの読み取りと実行を試みます / etc / profile そして 〜/ .profile 、その順に。ザ--noprofile オプションを使用してこの動作を禁止することができます。名前付きの対話型シェルとして呼び出されたとき sh, バッシュ 変数を探しますENVその値が定義されている場合はその値を展開し、展開した値を読み込んで実行するファイルの名前として使用します。シェルは、sh 他のスタートアップファイルからコマンドを読み込んで実行しようとしません。--rcfile オプションは効果がありません。名前を伴って呼び出される非対話型シェルsh 他のスタートアップファイルを読み込もうとしません。次のように呼び出されるとsh, バッシュ 入る posix モードを起動すると、ファイルが読み込まれます。

いつバッシュ 始まった posix モードでは、--posix コマンドラインオプションでは、スタートアップファイルのPOSIX標準に従います。このモードでは、対話型シェルはENV 変数とコマンドは、展開された名前のファイルから読み込まれ、実行されます。他の起動ファイルは読み込まれません。

バッシュ リモートシェルデーモンによっていつ実行されているかを判断しようと試みます。 rshd 。もし バッシュ それが実行されていると判断する rshd からコマンドを読み込んで実行します 〜/ .bashrc そのファイルが存在し、読み取り可能な場合呼び出された場合はこれを行いませんsh。ザ--norc この動作を抑止するためにオプションを使用することができます。--rcfile オプションを使用して、別のファイルを強制的に読み込むことができます rshd 一般的にはそれらのオプションでシェルを起動したり、シェルを指定することはできません。

実効ユーザー(グループ)idが実ユーザー(グループ)idと等しくなく、シェルが起動された場合-p オプションが指定されておらず、起動ファイルが読み込まれず、シェル関数が環境から継承されず、SHELLOPTS 変数が環境に現れた場合は無視され、実効ユーザーIDは実ユーザーIDに設定されます。もし-p 起動時の動作は同じですが、実効ユーザーIDはリセットされません。

定義

以下の定義は、この文書の残りの部分で使用されています。

  • ブランク: スペースまたはタブ。
  • ワード:シェルによって単一の単位とみなされる一連の文字。別名 トークン.
  • : A ワード 英数字とアンダースコアのみで構成され、英字またはアンダースコアで始まります。また、識別子.
  • メタキャラクター:引用符で囲まないと単語を区切る文字。次のいずれか:| &; ()<>スペースタブ
  • 制御演算子:A トークン 制御機能を実行する。次の記号のいずれかです。 || & && ; ;; ( ) |

予約語

予約語 シェルにとって特別な意味を持つ単語です。次の単語は、引用符を付けずに単純なコマンドの最初の単語または場合またはにとって コマンド:

!大文字小文字を入れたelif else esac fiをselectにしてwhileまでwhile {}時間

シェル文法:簡単なコマンド

A 単純なコマンド オプションの変数代入のシーケンスです。ブランク - 分離された単語とリダイレクト 制御オペレータ 。最初のワードは実行されるコマンドを指定し、引数0として渡されます。残りの単語は、呼び出されたコマンドに引数として渡されます。

aの戻り値 単純なコマンド その終了ステータス、または128 + n コマンドがシグナルで終了した場合 n .

パイプライン

A パイプライン 文字で区切られた1つ以上のコマンドのシーケンスです|。パイプラインのフォーマットは時間 -p ! コマンド | command2 … .

の標準出力 コマンド パイプを介して標準入力に接続されています。 command2 。この接続は、コマンドで指定されたリダイレクションの前に実行されます。

予約語! パイプラインに先行する場合、そのパイプラインの終了ステータスは、最後のコマンドの終了ステータスの論理NOTです。それ以外の場合は、パイプラインのステータスが最後のコマンドの終了ステータスになります。シェルは、パイプライン内のすべてのコマンドが値を返す前に終了するのを待ちます。

もし時間 予約語がパイプラインに先行する場合、その実行によって消費された経過時間とユーザーおよびシステム時間は、パイプラインが終了すると報告されます。ザ-p オプションは、出力フォーマットをPOSIXで指定されたものに変更します。ザTIMEFORMAT 変数は、タイミング情報の表示方法を指定する書式文字列に設定できます。

パイプラインの各コマンドは別のプロセスとして実行されます(サブシェルなど)。

リスト

A リスト 演算子の1つで区切られた1つ以上のパイプラインのシーケンスです;, &, &&、または||場合によっては、;, &、または.

これらのリスト演算子のうち、&& そして|| 等しい優先順位を持ち、続いて; そして&, 優先順位は同じです。

1つ以上の改行のシーケンスが リスト セミコロンの代わりにコマンドを区切ります。

コマンドが制御オペレータによって終了された場合&、シェルは次のコマンドを実行します。 バックグラウンド サブシェルでシェルはコマンドが終了するのを待たず、戻りステータスは0です。; 順次実行される。シェルは各コマンドが終了するのを待ちます。戻りステータスは、最後に実行されたコマンドの終了ステータスです。

制御演算子&& そして|| ANDリストとORリストをそれぞれ示します。 ANDリストの形式は次のとおりです。

command1 && command2

command2 実行されるのは、 command1 0の終了ステータスを返します。

ORリストの形式は次のとおりです。

command1 || command2

command2 が実行されるのは、if command1 ゼロ以外の終了ステータスを返します。 ANDおよびORリストの戻り状態は、リスト内で最後に実行されたコマンドの終了状態です。

複合コマンド

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

(リスト) : リスト サブシェルで実行されます。シェルの環境に影響を与える変数の割り当てや組み込みコマンドは、コマンドが完了しても有効なままではありません。戻りステータスは、終了ステータスです。 リスト .

{リスト; } : リスト 現在のシェル環境で単純に実行されます。 リスト 改行またはセミコロンで終わらなければなりません。これはaとして知られています グループコマンド 。戻りステータスは、終了ステータスです。 リスト 。メタキャラクタとは異なり( そして), { そして} は 予約語 予約語が認識されることが許されている場所で発生しなければならない。彼らは単語の区切りを引き起こさないので、 リスト 空白で区切ります。

((式)) : 表現 下記の規則に従って評価される 算術評価。 式の値がゼロでない場合、戻り状況は0です。それ以外の場合、戻りステータスは1です。〜する ' 表現 '.

表現 :条件式の評価に応じて0または1のステータスを返します 表現 。式は、下記のプライマリで構成されています。 条件式 単語の分割とパス名の展開は、 そして;チルダの展開、パラメータと変数の展開、算術展開、コマンド置換、プロセス置換、および引用の削除が実行されます。

いつ== そして!= 演算子が使用されている場合、演算子の右側の文字列はパターンとみなされ、以下で説明する規則に従って一致しますパターンマッチング。文字列がパターンと一致するか一致しない場合、戻り値は0で、そうでない場合は1です。パターンのどの部分も引用符で囲んで文字列として一致させることができます。

式は、次の演算子を使用して組み合わせることができます。優先順位の高い順にリストされます。

  • (式):の値を返します。 表現 。これは、演算子の通常の優先順位を無効にするために使用されます。
  • !表現 n: trueの場合 表現 偽です。
  • 式1 && 式2 : 両方の場合はTrue 式1 そして 式2 本当です。
  • 式1 || 式2 :いずれかの場合はTrue 式1 または 式2 本当です。

&& そして|| 演算子は評価しない 式2 の値が 式1 条件式全体の戻り値を決定するのに十分です。

  • にとって ワード ; 行う リスト ; 完了:続く単語のリスト アイテムのリストを生成します。変数 名 このリストの各要素に順に設定され、 リスト 毎回実行されます。もし ワード 省略された場合、にとって コマンドが実行されます リスト 設定されている位置パラメータごとに1回戻りステータスは、最後に実行されるコマンドの終了ステータスです。次の項目の展開 結果は空のリストになり、コマンドは実行されず、戻り状況は0になります。
  • にとって (( expr1 ; expr2 ; expr3 )) ; 行う リスト ; 完了: まず、 expr1 下記の規則に従って評価される算術評価。 算術式 expr2 それがゼロと評価されるまで繰り返し評価される。毎回 expr2 ゼロ以外の値に評価され、 リスト が実行され、演算式 expr3 評価される。式が省略された場合は、1と評価されるように動作します。戻り値は、最後のコマンドの終了ステータスです。 リスト 実行された式、またはいずれかの式が無効な場合はfalseを返します。
  • 選択する ワード ; 行う リスト ; 完了: 続く単語のリスト アイテムのリストを生成します。展開された単語のセットは標準エラーに印刷され、それぞれの前に番号が付けられます。もし ワード が省略されると、位置パラメータが出力されます。ザ PS3 プロンプトが表示され、標準入力から行が読み込まれます。行が表示された単語の1つに対応する数字で構成される場合、 名 その単語に設定されます。行が空の場合、単語とプロンプトが再び表示されます。 EOFが読み取られると、コマンドは完了します。その他の値の読み取り原因 名 nullに設定します。読み取られた行は変数に保存されます応答。ザ リスト 各選択の後にaブレーク コマンドが実行されます。終了ステータス選択する で実行された最後のコマンドの終了ステータスです。 リスト コマンドが実行されなかった場合は0になります。
  • 場合 ワード ( パターン | パターン :A場合 コマンドが最初に展開する ワード 、それぞれと照合しようとします パターン 次にパス名展開と同じマッチングルールを使用します。一致が見つかると、対応する リスト 実行される。最初の試合の後、その後の試合は試行されません。パターンが一致しない場合、終了ステータスはゼロです。それ以外の場合は、最後に実行されたコマンドの終了ステータスです。 リスト .
  • if リスト ; 次に リスト; そして エリフ リスト ; 次に リスト ; … else リスト ; fi: if リスト 実行される。その終了ステータスがゼロの場合、次に リスト 実行される。それ以外の場合、それぞれ エリフ リスト が実行され、その終了ステータスがゼロである場合には、対応する次に リスト コマンドが実行され、コマンドが完了します。それ以外の場合、else リスト 存在する場合には実行される。終了ステータスは、実行された最後のコマンドの終了ステータスです。テストされた条件が真でない場合はゼロです。
  • while リスト ; 行う リスト ; 完了 そして 〜まで リスト ; 行う リスト ; 完了while コマンドは、行う リスト 最後のコマンドがある限り リスト 0の終了ステータスを返します。ザ〜まで コマンドは、while テストが否定されることを除いて、コマンド。その行う リスト の最後のコマンドが実行されている限り実行されます リスト ゼロ以外の終了ステータスを返します。の終了ステータスwhile そして〜まで コマンドは最後のコマンドの終了ステータスです行う リスト コマンドが実行された場合、または実行されていない場合はゼロです。
  • 関数 名 () { リスト ; }:これは、 名 。ザ 体 関数の リスト {と}の間のコマンドのこのリストはいつでも実行されます 名 単純なコマンドの名前として指定されます。関数の終了ステータスは、本体で最後に実行されたコマンドの終了ステータスです。

コメント

非対話型シェルまたは対話型シェルでは、 interactive_comments オプションをshopt ビルトインが有効になっていると、# その単語とその行の残りの文字はすべて無視されます。シェルのない対話シェルinteractive_comments オプションを有効にするとコメントが許可されません。ザ interactive_comments オプションは、対話型シェルではデフォルトでオンになっています。

引用

引用 特定の文字や単語の特殊な意味をシェルに取り除くために使われます。クォーテーションは、特殊文字の特殊処理を無効にしたり、予約語がそのように認識されないようにしたり、パラメータ拡張を防ぐために使用できます。

それぞれの メタキャラクター 上記の定義 シェルにとって特別な意味を持ち、それを表現するためには引用符で囲む必要があります。

コマンド履歴拡張機能を使用している場合、 歴史の拡大 文字、通常!履歴拡張を防ぐために引用符で囲む必要があります。

3つの引用メカニズムがあります。 エスケープ文字 、一重引用符、および二重引用符。

引用符で囲まれていないバックスラッシュ() それは エスケープ文字 。次の文字のリテラル値を保持します。 。もし ペアが表示され、バックスラッシュは引用符で囲まれません。 行継続として扱われます(つまり、入力ストリームから削除され、効果的に無視されます)。

一重引用符で囲む文字は、引用符内の各文字のリテラル値を保持します。たとえバックスラッシュが前に置かれていても、一重引用符間に一重引用符はできません。

二重引用符で囲む文字は、引用符内のすべての文字のリテラル値を保持しますが、$, '、および。キャラクター$ そして' 特別な意味を二重引用符で囲みます。バックスラッシュは、次のいずれかの文字が続く場合にのみ、その特別な意味を保持します。$, ', ', 、または。二重引用符は、二重引用符の前にバックスラッシュを付けて引用することができます。

特別なパラメータ* そして@ 二重引用符で囲んだ場合は特別な意味を持ちます。

フォームの言葉$' 文字列 '特別扱われます。単語が展開されます 文字列 ANSI C標準で指定されているように、バックスラッシュエスケープ文字を置き換えます。バックスラッシュのエスケープシーケンスが存在する場合、次のようにデコードされます。

  • a:アラート(ベル)
  • b:バックスペース
  • e:エスケープ文字
  • f:フォームフィード
  • n:改行
  • r: キャリッジリターン
  • t:水平タブ
  • v:垂直タブ
  • \:バックスラッシュ
  • ':一重引用符
  • nnn :値が8進値である8ビット文字 nnn (1〜3桁)
  • バツ HH :値が16進値である8ビット文字 HH (1桁または2桁の16進数)
  • c バツ :制御 - バツ キャラクター

あたかもドル記号がなかったかのように、展開された結果は一重引用符で囲まれます。

二重引用符で囲まれた文字列の前にドル記号($)現在のロケールに従って文字列が変換されます。現在のロケールがC またはPOSIXドル記号は無視されます。文字列が変換され置換された場合、置換は二重引用符で囲まれます。

パラメーター

A パラメータ 値を格納するエンティティです。それは、 名 、数字の1つ、または下にリストされている特殊文字の1つ特別なパラメータ。シェルの目的のために、a 変数 aで示されるパラメータである。 名 。変数には 値 0以上 属性 。属性は、宣言する 組み込みコマンド。

パラメータに値が割り当てられている場合は、パラメータが設定されます。ヌル文字列は有効な値です。変数が設定されると、設定されていない 組み込みコマンド。

A 変数 次の形式の声明によって割り当てられることがあります: 名 = 値

もし 値 変数がnull文字列に割り当てられています。すべて 値 パラメータ展開と変数展開、コマンド置換、算術展開、および見積りの削除を行います。変数に整数 属性セット、次に 値 $((…))拡張が使用されていなくても、算術展開の対象となります。単語の分割は実行されません。'$@' 以下に説明するように特別なパラメータ。パス名展開は実行されません。割り当てステートメントは、宣言する, タイプセット, 輸出する, 読み取り専用、および 地元 組み込みコマンド。

位置パラメータ

A 位置パラメータ 1桁の0以外の1桁以上の桁で表されるパラメータです。位置パラメータは、呼び出されるときにシェルの引数から割り当てられます。セット 組み込みコマンド。代入文では、位置パラメータを割り当てることはできません。位置パラメータは、シェル関数が実行されるときに一時的に置き換えられます。

2桁以上の位置パラメータを展開する場合は、中括弧で囲む必要があります。

特別なパラメータ

シェルはいくつかのパラメータを特別に扱います。これらのパラメータは参照のみ可能です。それらへの割り当ては許可されません。

  • *:1から始まる定位置パラメーターに展開します。展開が二重引用符内で行われると、各パラメータの値を最初の文字で区切って1つの単語に展開しますIFS 特別な変数。あれは、 "$*"は"$1 c $2 c "、どこで c の値の最初の文字ですIFS 変数。もしIFS パラメータがスペースで区切られています。もしIFS パラメータがnullの場合、パラメータは介在するセパレータなしで結合されます。
  • @:1から始まる定位置パラメーターに展開します。展開が二重引用符で囲まれると、各パラメータは別の単語に展開されます。あれは、 "$@"は"$1' '$2"…位置パラメータがない場合、$@"と$@何も展開しないでください(削除されます)。
  • #:位置パラメータの数を10進数に展開します。
  • ?:直前に実行されたフォアグラウンドパイプラインのステータスに展開されます。
  • -:呼び出し時に指定された現在のオプションフラグに展開されます。セット 組み込みコマンド、またはシェル自体によって設定されたコマンド-私 オプション。
  • $:シェルのプロセスIDに展開されます。 a()サブシェルでは、サブシェルではなく現在のシェルのプロセスIDに展開されます。
  • !:最後に実行されたバックグラウンド(非同期)コマンドのプロセスIDに展開されます。
  • 0:シェルまたはシェルスクリプトの名前に展開されます。これはシェルの初期化時に設定されます。もしバッシュ コマンドのファイルで呼び出され、$0 そのファイルの名前に設定されます。もしバッシュ は、-c オプション、その後$0 実行される文字列の後の最初の引数があれば、最初の引数に設定されます。それ以外の場合は、呼び出すために使用されたファイル名に設定されますバッシュ引数0によって与えられる。
  • _:シェルの起動時に、引数リストで渡されるように実行されているシェルまたはシェルスクリプトの絶対ファイル名に設定します。その後、展開後に直前のコマンドの最後の引数に展開されます。また、実行され、そのコマンドにエクスポートされた環境に置かれた各コマンドの完全なファイル名にも設定されます。メールをチェックするとき、このパラメータは現在チェックされているメールファイルの名前を保持します。

シェル変数

以下の変数はシェルによって設定されます:

BASH:このインスタンスを呼び出すために使用された完全なファイル名に展開されます。バッシュ.

BASH_VERSINFO:このインスタンスのバージョン情報を保持する読取り専用配列変数。 バッシュ。配列メンバーに割り当てられた値は次のとおりです。

  • BASH_VERSINFO 0:メジャーバージョン番号( 解放 )
  • BASH_VERSINFO 1:マイナーバージョン番号( バージョン )
  • BASH_VERSINFO 2:パッチレベル
  • BASH_VERSINFO 3:ビルドバージョン
  • BASH_VERSINFO 4:リリースステータス( β1、 例えば)
  • BASH_VERSINFO 5:MACHTYPE

BASH_VERSION:このインスタンスのバージョンを説明する文字列に展開します。バッシュ.

COMP_CWORD:へのインデックス$ {COMP_WORDS} 現在のカーソル位置を含む単語のこの変数は、プログラマブル補完機能によって呼び出されるシェル関数でのみ使用できます。

COMP_LINE:現在のコマンドライン。この変数は、プログラマブル補完機能によって呼び出されるシェル関数と外部コマンドでのみ使用できます。

COMP_POINT現在のカーソル位置のインデックス。現在のコマンドの先頭からの相対位置。現在のカーソル位置が現在のコマンドの最後にある場合、この変数の値は$ {#COMP_LINE}。この変数は、プログラマブル補完機能によって呼び出されるシェル関数と外部コマンドでのみ使用できます。

COMP_WORDS:現在のコマンドラインの個々の単語からなる配列変数。この変数は、プログラマブル補完機能によって呼び出されるシェル関数でのみ使用できます。

DIRSTACK:ディレクトリスタックの現在の内容を含む配列変数。ディレクトリは、ディレクトリに表示されている順序でスタックに表示されます。Dirs ビルトイン。この配列変数のメンバへの代入は、すでにスタックにあるディレクトリを変更するのに使用できますが、プッシュド そしてポップ ディレクトリの追加と削除には組み込み関数を使用する必要があります。この変数に代入しても現在のディレクトリは変更されません。もしDIRSTACK リセットされていても、その特殊なプロパティは失われます。

EUID:シェルの起動時に初期化された、現在のユーザーの実効ユーザーIDに展開されます。この変数は読み込み専用です。

FUNCNAME:現在実行中のシェル関数の名前。この変数は、シェル関数が実行されている場合にのみ存在します。への割当FUNCNAME 何の効果もなくエラー状態を返します。もしFUNCNAME リセットされていても、その特殊なプロパティは失われます。

グループ:現在のユーザーがメンバーであるグループのリストを含む配列変数。への割当グループ 何の効果もなくエラー状態を返します。もしグループ リセットされていても、その特殊なプロパティは失われます。

HISTCMD:現在のコマンドの履歴リスト内の履歴番号またはインデックス。もしHISTCMD リセットされていても、その特殊なプロパティは失われます。

ホスト名:現在のホストの名前に自動的に設定されます。

HOSTTYPE:マシンのタイプを一意に示す文字列に自動的に設定されます。バッシュ 実行中です。デフォルトはシステムに依存します。

リネーノ:このパラメータが参照されるたびに、シェルはスクリプトまたは関数内の現在の連続行番号(1から始まる)を表す10進数を代入します。スクリプトまたは関数にない場合、置換された値は意味を持つとは限りません。もしリネーノ リセットされていても、その特殊なプロパティは失われます。

MACHTYPE:システムタイプを完全に記述する文字列に自動的に設定されます。バッシュ 標準GNUで実行されている cpu-company-system フォーマット。デフォルトはシステムに依存します。

OLDPWD:前回の作業ディレクトリ。CD コマンド。

OPTARG:最後に処理されたオプション引数の値。getopts 組み込みコマンド。

OPTIND:次の引数のインデックス。getopts 組み込みコマンド。

OSTYPE:オペレーティングシステムを表す文字列に自動的に設定されます。バッシュ 実行中です。デフォルトはシステムに依存します。

パイプステート:直前に実行されたフォアグラウンドパイプラインのプロセスからの終了ステータス値のリストを含む配列変数。単一のコマンドしか含まれていない可能性があります。

PPID:シェルの親のプロセスID。この変数は読み込み専用です。

障害者:現在の作業ディレクトリ。CD コマンド。

ランダム:このパラメータが参照されるたびに、0〜32767の間のランダムな整数が生成されます。乱数のシーケンスは、値を ランダム。もしランダム リセットされていても、その特殊なプロパティは失われます。

応答:入力された入力行に読む 引数を指定しない場合の組み込みコマンド。

セカンド:このパラメータが参照されるたびに、シェル呼び出しが返されてからの秒数。値が割り当てられている場合セカンド後続の参照時に返される値は、割り当てから割り当てられた値を加えた秒数です。もし セカンド リセットされていても、その特殊なプロパティは失われます。

SHELLOPTS:有効なシェルオプションのコロンで区切られたリスト。リストの各単語は、-o オプションをセット 組み込みコマンド。に表示されるオプションSHELLOPTS として報告されたもの に によってセット-o。この変数が環境内にある場合バッシュ 起動時に、リスト内の各シェルオプションが起動ファイルを読み込む前に有効になります。この変数は読み込み専用です。

SHLVL:インスタンスのインスタンスごとに1ずつインクリメントされます。バッシュ が開始される。

UID:シェルの起動時に初期化された、現在のユーザーのユーザーIDに展開されます。この変数は読み込み専用です。

次の変数はシェルによって使用されます。ある場合には、バッシュ 変数にデフォルト値を割り当てます。これらのケースには注意が必要です。

BASH_ENV:このパラメータが設定されている場合バッシュ シェルスクリプトを実行している場合、その値は、シェルを初期化するコマンドを含むファイル名として解釈されます。 〜/ .bashrc 。の価値 BASH_ENV ファイル名として解釈される前に、パラメータ展開、コマンド置換、および算術展開が行われる。パス 結果のファイル名の検索には使用されません。

CDPATHCD コマンド。これはコロンで区切られたディレクトリのリストで、シェルはCD コマンド。サンプル値は "。:〜:/ usr"です。

選択する 組み込みコマンドを使用して、選択リストを印刷するときに端末の幅を決定します。 SIGWINCHの受信時に自動的に設定されます。

補完:配列変数バッシュ プログラマブル補完機能によって呼び出されるシェル関数によって生成された可能な補完を読み込みます。

FCEDITfc 組み込みコマンド。

FIGNORE:ファイル名の補完を行うときに無視する接尾辞のコロン区切りのリスト。接尾辞が次のいずれかのエントリに一致するファイル名FIGNORE 一致したファイル名のリストから除外されます。サンプル値は ".o:〜"です。

GLOBIGNORE:パス名拡張で無視されるファイル名のセットを定義するコロン区切りのパターンのリスト。パス名展開パターンと一致するファイル名がGLOBIGNOREそれはマッチのリストから削除されます。

HISTCONTROL:の値に設定されている場合 無視空間 、aで始まる行スペース 文字は履歴リストに入力されません。次の値に設定されている場合 無視する 最後の履歴行と一致する行は入力されません。値は 無視する 2つのオプションが組み合わされています。設定されていない場合、または上記以外の値に設定されている場合は、パーサによって読み込まれたすべての行が、履歴リストに保存されます。ヒステリーレ。この変数の関数は、次のように置き換えられます。 ヒステリーレ。複数行の複合コマンドの2行目以降の行はテストされず、値に関係なく履歴に追加されますHISTCONTROL.

ヒストファイル:コマンド履歴が保存されているファイルの名前。デフォルト値は 〜/ .bash_history 。 unsetの場合、対話シェルが終了するとコマンド履歴は保存されません。

ヒストリ:履歴ファイルに含まれる行の最大数。この変数に値が代入されると、必要に応じて履歴ファイルが切り捨てられ、その行数を超えないようになります。デフォルト値は500です。ヒストリーファイルは、対話シェルが終了したときに書き込んだ後、このサイズに切り捨てられます。

ヒステリーレ:ヒストリリストに保存するコマンドラインを決定するために使用されるコロンで区切られたパターンのリスト。各パターンは、行の先頭に固定されており、完全な行と一致しなければなりません(暗黙の '*'が付いています)。各パターンは、指定されたチェックの後にラインに対してテストされます。HISTCONTROL 適用される。通常のシェルパターンマッチング文字に加えて、&'は、前の履歴行と一致します。 '&'は、バックスラッシュを使用してエスケープすることができます。マッチを試みる前にバックスラッシュが削除されます。複数行複合コマンドの2行目以降の行はテストされず、値に関係なく履歴に追加されますヒステリーレ.

虚偽:コマンド履歴内で覚えておくべきコマンドの数。デフォルト値は500です。

ホーム:現在のユーザのホームディレクトリ。のデフォルト引数CD 組み込みコマンド。この変数の値は、ティルド展開を実行するときにも使用されます。

ホスト:同じフォーマットのファイル名を含む / etc / hosts シェルがホスト名を完成する必要があるときに読むべきです。可能なホスト名補完のリストは、シェルの実行中に変更される可能性があります。値が変更された後にホスト名の補完が次回試行された場合、バッシュ 新しいファイルの内容を既存のリストに追加します。もし ホスト は設定されていますが、値はありません。バッシュ 読もうとする / etc / hosts 可能なホスト名補完のリストを取得します。いつホスト ホスト名リストがクリアされます。

IFS: 内部フィールドセパレータ 拡張後の単語の分割や、読む 組み込みコマンド。デフォルト値は "''.

IGNOREEOF:インタラクティブシェルのアクションを制御します。EOF 文字を入力します。設定されている場合、値は連続する数ですEOF 前の入力行の最初の文字として入力する必要がある文字バッシュ 終了します。変数が存在し、数値を持たないか値がない場合、デフォルト値は10です。変数が存在しない場合は、EOF シェルへの入力の終了を示します。

INPUTRC読み込まれた行 スタートアップファイル、デフォルトの 〜/ .inputrc .

LANG:で始まる変数で特に選択されていないカテゴリのロケールカテゴリを決定するために使用されますLC_.

LC_ALL:この変数は、次の値をオーバーライドします。LANG その他LC_ ロケールカテゴリを指定する変数。

LC_COLLATE:この変数は、パス名展開の結果をソートするときに使用される照合順序を決定し、パス名展開とパターンマッチングの範囲式、等価クラス、および照合シーケンスの動作を決定します。

LC_CTYPE:この変数は、文字の解釈と、パス名展開とパターンマッチングにおける文字クラスの振る舞いを決定します。

LC_MESSAGES:この変数は、二重引用符で囲まれた文字列の前にa$.

LC_NUMERIC:この変数は、数値の書式設定に使用されるロケールカテゴリを決定します。

ライン選択する 組み込みコマンドを使用して、選択リストを印刷するための列の長さを決定します。 SIGWINCHの受信時に自動的に設定されます。

郵便物:このパラメータがファイル名に設定されていて、MAILPATH 変数が設定されていない場合、バッシュ指定されたファイルにメールが到着したことをユーザーに通知します。

MAILCHECK:どのくらいの頻度で(秒単位で)バッシュ メールをチェックします。デフォルトは60秒です。メールをチェックするときは、シェルはプライマリプロンプトを表示する前にそれを行います。この変数が設定されていないか、0以上の数値に設定されていない場合、シェルはメール検査を無効にします。

MAILPATH:メールをチェックするファイル名のコロンで区切られたリスト。特定のファイルにメールが到着したときに印刷されるメッセージは、ファイル名を「?」で区切って指定することができます。メッセージのテキストで使用される場合、$_ 現在のメールファイルの名前に展開されます。例:

MAILPATH = '/ var / mail / bfox? "メールがあります:"〜/ shell-mail? "$ _ have mail!"

バッシュ この変数のデフォルト値を提供しますが、使用するユーザーメールファイルの場所はシステムに依存します(/ var / mail /$ USER).

OPTERR:値1に設定されている場合、バッシュ によって生成されたエラーメッセージを表示します。getopts 組み込みコマンド。OPTERR シェルが呼び出されるたびに、またはシェルスクリプトが実行されるたびに1に初期化されます。

パス:コマンドの検索パス。シェルがコマンドを探すディレクトリのコロン区切りのリストです。デフォルトのパスはシステムに依存し、インストールする管理者によって設定されますバッシュ。共通の値は "/ usr / gnu / bin:/ usr / local / bin:/ usr / ucb:/ bin:/ usr / bin :."です。

POSIXLY_CORRECT:この変数が環境内にある場合バッシュ 起動すると、シェルが入ります posixモード あたかもスタートアップファイルを読む前に、--posix 呼び出しオプションが指定されています。シェルが実行中に設定されている場合は、バッシュ 可能にする posixモード コマンドのように set -o posix 実行されていた。

PROMPT_COMMAND:設定されている場合、各プライマリプロンプトを発行する前にコマンドとして値が実行されます。

PS1:このパラメータの値が展開され、プライマリプロンプト文字列として使用されます。デフォルト値は " s- v $''.

PS2:このパラメータの値は、次のように展開されます。PS1 セカンダリプロンプト文字列として使用されます。デフォルトは "> ''.

PS3:このパラメータの値は、このパラメータのプロンプトとして使用されます。選択する コマンド。

PS4:このパラメータの値は、次のように展開されます。PS1、 その値は各コマンドの前に出力されますバッシュ 実行トレース中に表示されます。の最初の文字PS4 必要に応じて複数回複製され、複数レベルの間接指示を示します。デフォルトは "+ ''.

TIMEFORMAT:このパラメータの値は、プレフィックスが付いたパイプラインのタイミング情報時間 予約語が表示されるはずです。ザ % 文字は時間値または他の情報に展開されるエスケープシーケンスを導入する。エスケープシーケンスとその意味は次のとおりです。中括弧は任意の部分を示します。

  • %%:リテラル%
  • % p l R:経過時間(秒)
  • % p l U:ユーザーモードで費やされたCPU秒数
  • % p 1 S:システムモードで消費したCPU秒数
  • %P:(%U +%S)/%Rとして計算されたCPUパーセンテージ

オプション p は、 精度 小数点以下の小数点以下桁数。値が0の場合、小数点または小数は出力されません。小数点以下3桁まで指定できます。の値 p 3より大きい値は3に変更されます。 p が指定されていない場合は、値3が使用されます。

オプションl フォームの分数を含むより長い形式を指定します。 MM m SS . FF s。の価値 p 分数が含まれているかどうかを判断します。

この変数が設定されていない場合、バッシュ あたかも価値があるかのように行動する $ ' nreal t%3lR nuser t%3lU nsys%3lS'。値がNULLの場合、タイミング情報は表示されません。書式文字列が表示されているときに改行文字が追加されます。

TMOUT:0より大きい値に設定されている場合、TMOUT のデフォルトタイムアウトとして扱われます。読む ビルトイン。ザ選択する 入力が後に到着しない場合、コマンドは終了します。TMOUT 入力が端末から来る秒数。対話型シェルでは、この値は、1次プロンプトの発行後に入力を待機する秒数として解釈されます。バッシュ 入力が届かない場合は、その秒数を待って終了します。

auto_resume:この変数は、シェルがユーザーおよびジョブ制御とどのように対話するかを制御します。この変数が設定されている場合、リダイレクションのない単一単語の単純コマンドは、既存の停止したジョブの再開の候補として扱われます。あいまいさは許されません。タイプされた文字列で始まる複数のジョブがある場合、最も最近アクセスしたジョブが選択されます。ザ 名 このコンテキストでは、停止したジョブの開始に使用されるコマンド行です。値に設定されている場合 正確 指定された文字列は、停止したジョブの名前と正確に一致する必要があります。設定されている場合 部分文字列 指定された文字列は、停止したジョブの名前の部分文字列と一致する必要があります。ザ 部分文字列 値は、%? ジョブ識別子。他の値に設定されている場合、指定された文字列は停止したジョブ名の接頭辞でなければなりません。これは、% ジョブ識別子。

ヒストリカル:履歴拡張とトークン化を制御する2つまたは3つの文字。最初の文字は 歴史の拡大 文字、歴史拡張の開始を知らせる文字、通常は '!' 2番目の文字は 迅速な置換 このコマンドは、入力された前のコマンドを再実行するための略語として使用され、コマンド内の別の文字列に1つの文字列を代入します。デフォルトは '^'オプションの3番目の文字は、単語の最初の文字として見つかったときに行の残りの部分がコメントであることを示