使いこなせばBashマスター。
成果物
一覧
以下の変数はシェルが設定する。(48個)
シェル変数 | 概要 |
---|---|
BASH |
現在実行しているbashのフルパス。 |
BASHOPTS |
有効になっているシェルのオプションを示す(コロン区切り)。読込専用。shopt -s でon と表示されるものである。 |
BASHPID |
現在のbashプロセスID。($$は非更新) |
BASH_ALIASES |
エイリアスの内部的なリストに対応する連想配列変数。 |
BASH_ARGC |
bashの現在の呼出スタックについて、フレームごとの引数の数が並んだ配列変数。 |
BASH_ARGV |
bashの現在の呼出スタックについて、全ての引き数が並んだ配列変数。 |
BASH_CMDS |
bashが内部に持つコマンドのハッシュテーブルに対応する連想配列変数。 |
BASH_COMMAND |
現在実行しているか実行しようとしているコマンド。 |
BASH_EXECUTION_STRING |
起動オプション -c で指定されたコマンド。 |
BASH_LINENO |
ソースファイル中の行番号からなる配列変数。FUNCNAME と対応する。現在の行番号はLINENO 。 |
BASH_REMATCH |
[[ 中の二項演算子=~ により設定される配列変数。 |
BASH_SOURCE |
ソースファイル名からなる配列変数。 |
BASH_SUBSHELL |
サブシェルやサブシェル環境が作成されるたびに1増加。初期値0 。 |
BASH_VERSINFO |
0 : メジャー1 : マイナー2 :パッチレベル3 :ビルドバージョン4 :リリースステータス(beta1等)5 :MACHTYPE の値 |
BASH_VERSION |
現在実行しているbashのバージョン。 |
COMP_CWORD |
現在カーソル位置がある単語の配列変数${COMP_WORDS} におけるインデックス。 |
COMP_KEY |
現在の補完関数を呼び出したキー。 |
COMP_LINE |
現在のコマンドライン。 |
COMP_POINT |
現在のコマンドの先頭からの相対値として与えられたカーソル位置のインデックス。 |
COMP_TYPE |
補完関数を呼び出した補完のタイプに対応する整数値が設定される。<TAB> : 通常の補完? : 連続したタブ入力による候補リスト! : 途中まで補完した後の候補リスト@ : 部分的な補完ができないときの候補リスト% : メニュー補完 (menu completion) |
COMP_WORDBREAKS |
単語補完のときにreadlineライブラリが単語分割の区切文字として扱う文字の並び。 |
COMP_WORDS |
現在のコマンドラインの各単語からなる配列変数。 |
COPROC |
無名のコプロセスが入出力するファイル・ディスクリプターを保持する配列変数。 |
DIRSTACK |
現在のディレクトリスタックの内容を持つ配列変数。 |
EUID |
現在のユーザの実効ユーザID。 |
FUNCNAME |
現在の呼び出しスタックにある全てのシェル関数名が入った配列変数。 |
GROUPS |
現在のユーザがメンバになっているグループのリストを含んだ配列変数。 |
HISTCMD |
現在のコマンドの履歴番号(履歴リストにおけるインデックス)。 |
HOSTNAME |
現在のホスト名。(raspberrypi 等) |
HOSTTYPE |
bashを実行するマシンの種類をユニークに記述する文字列。(arm 等) |
LINENO |
行番号。 |
MACHTYPE |
bashを実行するシステムの種類(GNU標準のcpu-company-system形式)(arm-unknown-linux-gnueabihf ) |
MAPFILE |
組込コマンドmapfile に変数名が指定されなかったときに読み込んだテキストを保持する配列変数。 |
OLDPWD |
1つ前の作業ディレクトリ。 |
OPTARG |
組込コマンドgetopts で処理した最後のオプション引数値。 |
OPTIND |
組込コマンドgetopts で次に処理されるオプション引数インデックス。 |
OSTYPE |
bashを実行するOSを記述する文字列。(linux-gnueabihf 等) |
PIPESTATUS |
フォアグラウンドで最後に実行したパイプラインの各プロセスの終了ステータスのリストを含む配列変数。 |
PPID |
そのシェルの親のプロセスID。 |
PWD |
現在の作業ディレクトリ。 |
RANDOM |
0 〜32767 までのランダムな整数。 |
READLINE_LINE |
readlineの編集バッファ内容。bind -x で使う。 |
READLINE_POINT |
readlineの編集バッファでの挿入ポイント位置。bind -x で使う。 |
REPLY |
組込コマンドread に引き数が与えられなかったときに読み込まれた行。 |
SECONDS |
シェルが起動されてからの秒数。 |
SHELLOPTS |
有効になっているシェルのオプションを示す。(コロン区切り) リスト中の単語は組込コマンドset -o に対応。 |
SHLVL |
bashが起動するときに環境変数で渡された値から1増やした値。 |
UID |
現在のユーザのユーザID。 |
以下の変数はシェルが使用する。(47個)
シェル変数 | 概要 |
---|---|
BASH_ENV |
bashがシェルスクリプトを実行するときにこの値が設定されている場合、この値は(~/.bashrc のように)シェルを初期化するコマンドが書かれているファイル名と解釈される。 |
BASH_XTRACEFD |
有効なファイル・ディスクリプター(fd)に対応する整数をセットするとbashはset -x が設定されたときに、生成されたトレース出力を そのfdに出力する。BASH_XTRACEFD がunset されるか新しい値が代入されるとfdは閉じる。 |
CDPATH |
cd コマンドの検索パス。コロン区切り。 |
COLUMNS |
組込コマンドselect によって選択されたリストを表示する際の端末幅の決定に用いられる。 |
COMPREPLY |
bashが可能な補完候補を読み込む配列変数。 |
EMACS |
bashが起動したときにこの環境変数が設定されて値がt になっていると行編集を無効化する。 |
ENV |
BASH_ENV と類似の変数でPOSIXモードで使われる。 |
FCEDIT |
組み込みコマンドfc が使うデフォルトのエディタ。 |
FIGNORE |
ファイル名補完を行う際に無視するサフィックス(コロン区切り)。.o:~ 等。 |
FUNCNEST |
0 より大きい数値を設定すると関数呼び出しを何重まで許すかの最大レベルを決める。 |
GLOBIGNORE |
パス名展開で無視するファイル名の集合を定義するパターン(コロン区切り) |
HISTCONTROL |
履歴リストに入れるコマンドを制御する値(コロン区切り) |
HISTFILE |
コマンド履歴が保存されるファイルの名前。デフォルト値~/.bash_history 。 |
HISTFILESIZE |
履歴ファイルに保持する履歴の最大数。 |
HISTIGNORE |
どのコマンド行を履歴リストに保存するかを決めるために使うパターン(コロン区切り) |
HISTSIZE |
コマンド履歴に記憶するコマンドの数。 デフォルト500 。 |
HISTTIMEFORMAT |
この変数に空でない値が設定されると組込コマンドhistory で履歴エントリを表示するときにタイムスタンプを表示するためのstrftime(3) の書式文字列 として使われる。 |
HOME |
現在のユーザのホームディレクトリ。 |
HOSTFILE |
シェルがホスト名を補完する必要があるときに読み込むファイルの名前を示す。 |
IFS |
内部フィールド区切文字(Internal Field Separator)。デフォルト値<空白><タブ><改行> 。 |
IGNOREEOF |
単独で入力された EOF 文字を受け取ったときの対話シェルの動作を制御する。 |
INPUTRC |
readlineの起動ファイルのファイル名。デフォルト値~/.inputrc を上書きする。 |
LANG |
ロケール設定。(LC_ より優先度低) |
LC_ALL |
ロケール設定。(優先度最高) |
LC_COLLATE |
パス名展開の結果をソートするときに使用される照合順序と、パス名展開とパターンマッチングにおける範囲表現、等値クラス、照合順序の動作を決定する。 |
LC_CTYPE |
パス名展開とパターンマッチングにおける文字解釈と文字クラスに含まれる文字を決める。 |
LC_MESSAGES |
$ の後に続くダブルクォートされた文字列の翻訳に使うロケールを決める。 |
LC_NUMERIC |
数字のフォーマットに使用するロケールカテゴリを決める。 |
LINES |
組込コマンドselect によって選択されたリストを表示する際の行数の決定に用いる。 |
MAIL |
このパラメータにファイル名またはディレクトリ名が設定されており、かつ変数MAILPATH が設定されていなければbashは指定されたファイルまたはMaildier形式のディレクトリへのメールの到着をユーザに通知します。 |
MAILCHECK |
bashがメールをチェックする頻度を秒数で指定。デフォルトは60 秒。 |
MAILPATH |
メールのチェックに使うファイル名(コロン区切り)。 特定ファイルにメールが到着したときの出力メッセージは? を使ってファイル名をメッセージから区切ることで指定可。メッセージのテキスト中で使われたとき$_ は現在のメールファイルの名前になる。MAILPATH='/var/mail/bfox?"You have mail":~/shell-mail?"$_ has mail!"' |
OPTERR |
1 が設定されている場合bashは組込コマンドgetopts を使って生成したエラーメッセージを表示する。 |
PATH |
コマンドの検索パス。(コロン区切り) |
POSIXLY_CORRECT |
bashが起動したときにこの環境変数が設定されていると、起動オプション--posix を指定したときと同じくposixモードになる。 シェルの実行中にこの変数が設定されるとbashはset -o posix コマンドを実行したときと同様にposixモードが有効になる。 |
PROMPT_COMMAND |
設定されているとプライマリプロンプトを出す前に毎回、この値がコマンドとして実行されます。 |
PROMPT_DIRTRIM |
0 より大きい値が設定されると、プロンプト文字列のエスケープシーケンス\w や\W を展開するときにディレクトリがパス名の最後からこの数だけ残る。 |
PS1 |
このパラメータの値は展開されてプライマリのプロンプト文字列になる。デフォルト値\s-\v\$ 。 |
PS2 |
このパラメータの値は PS1 と同じように展開され、セカンダリのプロンプト文字列として使われる。デフォルト値> 。 |
PS3 |
このパラメータの値はselect コマンドのプロンプトとして使われる。 |
PS4 |
このパラメータはPS1 と同じように展開される。この値は実行トレース中にbashが表示する各コマンド前に出力される。デフォルト値は+ 。 |
SHELL |
この環境変数にシェルのフルパス名が保存されている。 |
TIMEFORMAT |
time コマンドの書式設定。%% : 文字% %[p][l]R : 経過した秒数%[p][l]U : ユーザモードで使われたCPU秒数%[p][l]S : システムモードで使われたCPU秒数。%P : CPUパーセンテージ (%U + %S) / %R p : 小数点桁数l : 分(minute)を含む未設定時: \nreal\t%3lR\nuser\t%3lU\nsys%3lS |
TMOUT |
0 より大きい値を設定すると、TMOUT の値が組込コマンドread のデフォルトのタイムアウト値となる。select コマンドはTMOUT 秒入力がないと終了する。 |
TMPDIR |
設定するとテンポラリファイル作成ディレクトリ名として使う。 |
auto_resume |
ユーザがジョブ制御をするときの方法を変更する。 |
histchars |
2 文字か3 文字で履歴の展開とトークン分割を制御する。デフォルト値: \ ^````````' 。 |
対象環境
- Raspbierry pi 3 Model B+
- Raspbian stretch 9.0 2018-11-13
- bash 4.4.12
$ uname -a Linux raspberrypi 4.14.98-v7+ #1200 SMP Tue Feb 12 20:27:48 GMT 2019 armv7l GNU/Linux
所感
使いこなせる気がしない……。