bash の help 機能について
bash の組込の機能については man / info ではなく、help コマンドを使います。
bash のシェルスクリプトとしての機能やSHELLとしての機能を見たいときには help を使えば見ることが出来ます。
インターネットではlinux での使い方で調べると man がよく出てきますが、bash の機能を見たいときは help を使うと手軽です。
help は組込コマンド
help は bash のシェルで使うと便利です。bash が起動していたらどこでも使えます。
help 知りたい機能のように引数にキーワードを入れるだけでカンタンです。
help の使い方 例
takuya@Desktop$ help cd
cd: cd [-L|[-P [-e]] [-@]] [dir]
Change the shell working directory.
(略
help の help
ヘルプの使い方も help には書いてあります。
help と打ち込んだらいくらでも見ることが出来ます。ただしキーワードの指定の仕方には少しコツが必要です
help コマンドを実行した結果
takuya@Desktop$ help
GNU bash, バージョン 4.4.5(1)-release (x86_64-apple-darwin15.6.0)
これらのシェルコマンドは内部で定義されています。`help' と入力して一覧を参照してください。
`help 名前' と入力すると `名前' という関数のより詳しい説明が得られます。
'info bash' を使用するとシェル全般のより詳しい説明が得られます。
`man -k' または info を使用すると一覧にないコマンドのより詳しい説明が得られます。
名前の後にアスタリスク (*) がある場合はそのコマンドが無効になっていることを意味します。
job_spec [&] history [-c] [-d offset] [n] >
(( expression )) if COMMANDS; then COMMANDS; [ el>
. filename [arguments] jobs [-lnprs] [jobspec ...] ま>
: kill [-s sigspec | -n signum | ->
[ arg... ] let 引数 [引数 ...]
[[ expression ]] local [option] name[=value] ...
alias [-p] [name[=value] ... ] logout [n]
bg [job_spec ...] mapfile [-d delim] [-n count] [->
bind [-lpsvPSVX] [-m keymap] [-f > popd [-n] [+N | -N]
break [n] printf [-v var] format [argument>
builtin [shell-builtin [arg ...]> pushd [-n] [+N | -N | dir]
caller [expr] pwd [-LP]
case WORD in [PATTERN [| PATTERN]> read [-ers] [-a array] [-d delim>
cd [-L|[-P [-e]] [-@]] [dir] readarray [-n count] [-O origin]>
command [-pVv] command [arg ...] readonly [-aAf] [name[=value] ..>
compgen [-abcdefgjksuv] [-o optio> return [n]
complete [-abcdefgjksuv] [-pr] [-> select NAME [in WORDS ... ;] do >
compopt [-o|+o option] [-DE] [nam> set [-abefhkmnptuvxBCHP] [-o opt>
continue [n] shift [n]
coproc [NAME] command [redirectio> shopt [-pqsu] [-o] [optname ...]
declare [-aAfFgilnrtux] [-p] [nam> source filename [arguments]
dirs [-clpv] [+N] [-N] suspend [-f]
disown [-h] [-ar] [jobspec ... | > test [expr]
echo [-neE] [arg ...] time [-p] pipeline
enable [-a] [-dnps] [-f filename]> times
eval [arg ...] trap [-lp] [[arg] signal_spec ..>
exec [-cl] [-a name] [command [ar> true
exit [n] type [-afptP] name [name ...]
export [-fn] [name[=value] ...] > typeset [-aAfFgilnrtux] [-p] nam>
false ulimit [-SHabcdefiklmnpqrstuvxPT>
fc [-e ename] [-lnr] [first] [las> umask [-p] [-S] [mode]
fg [job_spec] unalias [-a] name [name ...]
for NAME [in WORDS ... ] ; do COM> unset [-f] [-v] [-n] [name ...]
for (( exp1; exp2; exp3 )); do CO> until COMMANDS; do COMMANDS; do>
function name { COMMANDS ; } ま> 変数 - 変数の名前とその意味
getopts optstring name [arg] wait [-n] [id ...]
hash [-lr] [-p pathname] [-dt] [n> while COMMANDS; do COMMANDS; do>
help [-dms] [pattern ...] { COMMANDS ; }
(( expression )) のヘルプを見てみます。
まずは、 (( expression )) のヘルプを見てみようと思います。
help⏎ と打ち込むと、閲覧可能ヘルプの一覧が出てきます。この中から ` (( expression )) のヘルプを閲覧したいと思います。
takuya@Desktop$ help job_spec [&] (( expression ))
# (( expression )) のヘルプを見る:失敗例
$ help (( expression ))
-bash: 予期しないトークン `(' 周辺に構文エラーがあります
そのまま打ち込むと、(( )) が bash の構文として展開されてしまうので、見ることが出来ません。
# クオート処理する
$ help '(( expression ))' -bash: help: `(( expression ))' に一致するヘルプ項目がありません。`help help'、`man -k (( expression ))' または `info (( expression ))' を試してください
クオートで囲ってみても、うまく行きません・・・
# キーワードを減らすとうまくいく
$ help '(('
(( ... )): (( expression ))
算術式を評価します。
算術式の規定に基づいて EXPRESSION を評価します。"let EXPRESSION"
と等価です。
終了ステータス:
EXPRESSION の評価値が 0 の場合は 1、それ以外は 0 を返します。
このように、help⏎ で出てきたキーワードから、少し減らすとうまく表示されることが多いようです。
bash の変数についてのヘルプを見てみる
bash には各種変数が有り、そのなかでシェル特有なものが紹介されています。
bash 特有の変数は BASH_XXX のように BASH が接頭詞としてついています。それらは info bash で見ることが出来ます。
bash の変数についての解説を見てみる。
takuya@Desktop$ help var
variables: 変数 - 変数の名前とその意味
通常の変数名とその使用法。
BASH_VERSION Bashのバージョン情報。
CDPATH `cd`の引数として与えられたディレクトリを検索する際に
使用されるコロン (:) で区切られたディレクトリの一覧。
GLOBIGNORE パス名を展開する時に無視されるコロン (:) で区切られた
ファイル名パターンの一覧。
HISTFILE コマンドヒストリが保存されるファイル名。
HISTFILESIZE ヒストリファイルに保存することができる最大行数。
HISTSIZE 実行中のシェルがアクセスできる最大ヒストリ行数。
HOME ログインディレクトリの完全パス名。
HOSTNAME 現在のホスト名。
HOSTTYPE このバージョンの Bash を実行している CPU の種類。
IGNOREEOF シェルがファイル終了 (EOF) 文字を単一の入力として受け
取った時の動作を制御します。設定されている場合、空白行
で EOF 文字をその数連続して受け取った時にシェルを終了
します (デフォルト 10)。設定が解除された場合、EOF で
入力が終了することを意味します。
MACHTYPE Bash が実行されている現在のシステムを表す文字列。
MAILCHECK Bash がメールを確認する頻度 (秒単位)。
MAILPATH Bash が新規メールを確認するコロン (:) で区切られた
ファイル名の一覧。
OSTYPE このバージョンの Bash を実行している OS のバージョン。
PATH コマンドを検索する際に使用されるコロン (:) で区切ら
れたディレクトリの一覧。
PROMPT_COMMAND プライマリプロンプトが表示される前に毎回実行
されるコマンド。
PS1 プライマリプロンプト文字列。
PS2 セカンダリプロンプト文字列。
PWD 現在のディレクトリの完全パス名。
SHELLOPTS コロン (:) で区切られた有効なシェルオプション一覧。
TERM 現在の端末種類名。
TIMEFORMAT `time' 予約語による時間統計情報の表示書式。
auto_resume null で無い場合、その行に現れたコマンドは、まず現在停止
されているジョブから検索されます。それで見つかった場合、
ジョブがフォアグランドになります。値が `exact' の場合、
コマンドが停止しているジョブの一覧と厳密に一致していなけ
ればなりません。値が `substring' の場合、コマンドがジョ
ブの部分文字列に一致しなければなりません。その他の値の
場合はコマンドが停止しているジョブの先頭部分に一致しな
ければなりません。
histchars ヒストリ展開とクイック置換を制御する文字。最初の文字が
ヒストリ展開の文字で通常は `!' です。二番目がクイック
置換で通常は `^' です。三番目がヒストリのコメントで
通常は `#' です。
HISTIGNORE ヒストリ一覧に保存されるコマンドを決める時に使用される
コロン (:) で区切られたパターンの一覧。
構文についてのヘルプ
for については、構文が複数あるので、それぞれ別個にキーワードで指定し調べる必要があります。
for の ヘルプの例
takuya@Desktop$ help for
for: for NAME [in WORDS ... ] ; do COMMANDS; done
リストの各要素に対してコマンドを実行します。
`for' ループではリストの各要素に対して一連のコマンドを実行します。
`in WORDS ...;' が存在しない場合、`in "$@"' であると見なされます。
WORDS の要素が NAME の値として代入され COMMANDS が実行されます。
終了ステータス:
最後に実行したコマンドのステータスを返します。
C言語スタイルの for (( )) のヘルプ
takuya@Desktop$ help 'for (('
for ((: for (( exp1; exp2; exp3 )); do COMMANDS; done
算術 for ループ
以下と等価です。
(( EXP1 ))
while (( EXP2 )); do
COMMANDS
(( EXP3 ))
done
EXP1、EXP2、および EXP3 は数式です。いずれかの数式を省略した場合、
値が 1 であるとして評価されます。
終了ステータス:
最後に実行したコマンドのステータスを返します。
help で見られないモノ
help では主に関数 とくに組込関数 の使い方が見られます。
条件分岐の書式や、コマンドの書式については、特に触れられていませんでした。
パターンや、条件書式や演算子などの情報については info bash または man bash を使うことで見ることが出来ます。