BASH変数のリストがたくさん見つかりました。https://www.gnu.org/software/bash/manual/html_node/Bash-Variables.html
説明によると、
これらの変数はBashで設定または使用されますが、他のシェルは通常これを特に処理しません。
最初の変数は、
BASH:現在のBashインスタンスを実行するために使用されるフルパス名。
しかし、BASH
端末に入力するとbash: BASH: command not found
echo $0
を使用していることを確認できますbash
。
同様に、コマンドを実行すると、BASH_VERSINFO
コマンドの説明に次のように表示されますが、同じ出力が表示されます。
そのメンバーがこのBashインスタンスのバージョン情報を保持する読み取り専用配列変数(配列を参照)。配列メンバーに割り当てられる値は次のとおりです。
BASH_VERSINFO[0] メジャーバージョン番号(リリースバージョン)です。
BASH_VERSINFO[1] マイナーバージョン番号(バージョン)です。
BASH_VERSINFO[2] パッチレベルです。
BASH_VERSINFO[3] ビルドバージョンです。
BASH_VERSINFO[4] リリース状態(例:ベータ1)。
BASH_VERSINFO[5] MACHTYPE の値です。
たとえば、一部の変数は機能しますhostname
。pwd
ベストアンサー1
変数を直接入力すると、シェルは入力した内容をコマンドとして解釈し、$ PATH変数で同じ名前の項目を検索します。 $ PATHにBASHとBASH_VERSINFOというエントリがないため、「コマンドが見つかりません」というエラーメッセージが表示されます。一方、見つかったように、これは有効なコマンドですpwd
。hostname
echo
代わりに、変数(通常は両方ともシェルに組み込まれています)を印刷するコマンドを実行し、チェックしたいprintf
変数をコマンドの引数として指定する必要があります。コマンド名は通常小文字で構成され、シェル環境変数は通常大文字でのみ構成されます。
上記の変数の値を表示するには、次のようにします。
$ echo "$BASH"
/bin/bash
$ for i in {0..4}; do printf "%d\t%s\n" "$i" "${BASH_VERSINFO[$i]}"; done
0 4
1 4
2 12
3 1
4 release
配列変数を印刷するには、「${ARR_NAME[$index]}」構文を使用します。 Bash 索引付けは 0 から始まります。通常、不要な動作を避けるために、変数(配列を含む)を二重引用符で囲む必要があります(引用符の省略は、以下のように分割グロップ演算子と同じです)。ここ)。