bash - 組み込みコマンド
組み込みコマンドとはbashの中に含まれているコマンド。
ファイルとして存在していないので、whichなどで調べられない。
.(ドット)コマンド
変数や関数を定義したファイルをを読み込み、利用できるようにする。
. filename
:(ヌル)コマンド
何もせず終了コード0を返す。また引数を付けると変数の設定を行うことができる。
if [ condition ]; then #conditionが真の場合は何もしない : fi : ${var:=abc} #varに値が入っていなければabcを代入
eval
引数をシェルのコマンドとして実行、またひとまとめにした変数の展開を行う。
$ DATE=date $ eval $DATE #変数を展開した結果をコマンドとして実行 Thu Aug 6 03:05:32 2009 $ eval echo $DATE #echo $DATEコマンドを実行 data $ eval `echo $DATE` Thu Aug 6 03:05:32 2009 #echo $DATEコマンドの実行結果を実行
exec
新しくプロセスを作らず現行のカレントシェルのプロセスと置き換えて引数のコマンドを実行する。
$ exec ls #lsの表示が終了するとシェルも終了してしまう。
exit
シェルを終了する場合に使う。
$ exit 0 #終了コード0を返しシェルを終了する
read
キーボードからの入力を変数にセットする。
$ read aaa bbb $ echo $aaa bbb
return
シェル関数の戻り値を設定し、終了する。
square(){ var=`expr $1 \* $1 if [ $? -ge 2 ]; then #exprの戻り値が2以上だったら return 1 else echo $var return 0 fi }
set
1.位置パラメータをシェルスクリプト内部で任意に設定する。
2.設定されている変数の一覧表示
3.シェルのオプションを変更する
vi abc #!/usr/bin/sh echo $1 $2 set abc 123 echo $1 $2 $ abc 5 6 5 6 abc 123
shift
位置パラメータの値を左にずらす。
vi abc #!/usr/bin/sh echo $1 $2 shift 2 echo $1 $2 $ abc 1 2 3 3
trap
シグラルを受けたときの処理の設定を行う。
trap [action] signal #signalを受けたときactionを実行する $ trap `echo abort; rm -rf /tmpfile; exit 1` 1 2 3
unset
変数や関数を未定義にする
$ var=abc $ echo var abc $unset var
wait
プロセス終了の待機を行う。
バックグランドで実行している処理が終わるのを待ち、次に進む。
wait [prosess id] $ command1 & $ wait $! #バックグランドコマンドの終了を待つ $ command2