GNU/Linux >> Linux の 問題 >  >> Linux

(bash)シェルの特別なパラメーター/変数はどれですか?

$で始まるBashの特別なパラメータを見つけました サイン。例:終了ステータスを探していたとき、$?について知っていました。 、$$によるプロセスID など

だから、私は共有 この投稿では、特別なbash(シェル)パラメーターとその使用法を確認します。

承認された回答:

Bashリファレンスマニュアルの3.4.2特殊パラメータを参照してください。

特別なパラメータ:

  • $ *

($ *)1から始まる位置パラメータに展開されます。展開が二重引用符で囲まれていない場合、各定位置パラメーターは個別の単語に展開されます。それが実行されるコンテキストでは、それらの単語はさらに単語分割とパス名拡張の対象になります。展開が二重引用符で囲まれている場合、各パラメーターの値がIFS特殊変数の最初の文字で区切られた単一の単語に展開されます。つまり、「$*」は「$1c $ 2c…」と同等です。ここで、cはIFS変数の値の最初の文字です。 IFSが設定されていない場合、パラメーターはスペースで区切られます。 IFSがnullの場合、パラメーターは区切り文字を介さずに結合されます。

  • [メール保護]

([メール保護])位置パラメータに展開します。1から始まります。展開が二重引用符で囲まれている場合、各パラメーターは個別の単語に展開されます。つまり、「[メールで保護]」は「$1」「$2」に相当します…。二重引用符で囲まれた展開が単語内で発生する場合、最初のパラメーターの展開は元の単語の最初の部分と結合され、最後のパラメーターの展開は元の単語の最後の部分と結合されます。位置パラメータがない場合、「[メール保護]」と[メール保護]は何も展開されません(つまり、削除されます)。

  • $#

($#)10進数の位置パラメータの数に展開されます。

  • $?

($?)最後に実行されたフォアグラウンドパイプラインの終了ステータスに展開されます。

  • $-

($-、ハイフン。)呼び出し時、set組み込みコマンド、またはシェル自体によって設定されたオプションフラグ(-iオプションなど)によって指定された現在のオプションフラグに展開されます。

  • $$

($$)シェルのプロセスIDに展開されます。 ()サブシェルでは、サブシェルではなく、呼び出し元のシェルのプロセスIDに展開されます。

  • $!

($!)非同期コマンドとして実行されたか、bgビルトインを使用して実行されたかに関係なく、バックグラウンドに最後に配置されたジョブのプロセスIDに展開されます(ジョブ制御ビルトインを参照)。

  • $ 0

($ 0)シェルまたはシェルスクリプトの名前に展開されます。これはシェルの初期化時に設定されます。コマンドのファイル(シェルスクリプトを参照)を使用してBashが呼び出されると、そのファイルの名前に$0が設定されます。 Bashが-cオプションで開始された場合(Bashの呼び出しを参照)、実行される文字列の後の最初の引数(存在する場合)に$0が設定されます。それ以外の場合は、引数zeroで指定されているように、Bashを呼び出すために使用されるファイル名に設定されます。

これは、bashのmanページから印刷することもできます:

$ man bash | awk '/Special Parameters$/','/Shell Variables$/'

上記は、POSIXで定義されている特別なパラメーターと同じです。

関連:Korn Shellの「set-f」は何をしますか?

さらに、位置パラメータ$1があります 、$2 、…シェルまたは現在の関数へのコマンドライン引数が含まれています(3.4.1位置パラメータ)。これらはPOSIX機能でもあります。

古いバージョンのBashにも$_がリストされています 特別なパラメータとしてですが、シェルによって設定された他の変数(5.2 Bash変数)の中でリストされるようになりました。 $_ はPOSIXではなく、他のシェルはそれをサポートしていない可能性があります。

  • $_

$_ 、アンダースコア。)シェルの起動時に、環境または引数リストで渡されたとおりに実行されているシェルまたはシェルスクリプトを呼び出すために使用される絶対パス名に設定します。続いて、展開後、前のコマンドの最後の引数に展開します。また、実行され、そのコマンドにエクスポートされた環境に配置された各コマンドを呼び出すために使用されるフルパス名に設定します。メールをチェックするとき、このパラメータはメールファイルの名前を保持します。


Linux
  1. Bashシェルのカスタマイズ

  2. Bashシェルでのクイックディレクトリナビゲーション?

  3. シェル変数と環境変数の使用法の違いは?

  1. Readlineワードセパレーターとは何ですか?

  2. 非環境変数はコマンド置換によって呼び出されたサブシェルに渡されますか?

  3. `$ _`の意味を理解しますか?

  1. どのシェルを使用する必要がありますか– Tcsh Vs Bash ??

  2. Linuxで使用しているシェルを見つける方法

  3. Linuxのシェルの種類は何ですか?