シェルプログラミング コマンド
ナビゲーションに移動
検索に移動
目次
シェルプログラミング コマンド
これらの本からの覚書。
break
条件を満たす前に、for、while、until ループを抜ける
for file in $1* do echo "checking... $file" if [ $file = "$2" ];then echo "*********************" echo "$2 is found." echo "*********************" break; fi done;
: コマンド
- コロン(:)はヌルコマンド
- trueコマンドの変わりに使用でき、簡潔に記述できる場合がある
- while : は wihle true と同じ意味
continue
一番内側の、for、while、untilループの始まりに戻り次の繰り返しを行う。
.コマンド
ドット(.)コマンドは、現在のシェルを実行する
- 通常スクリプトから、コマンドやスクリプトを実行すると、新しい環境(サブシェル)が作成される
- source コマンドや ドット(.)コマンドを利用するとスクリプトを呼び出したシェルと同じシェルで実行される。
- このコマンドを利用すると、同じ環境変数をスクリプトの中で利用できる。
. shell_script
eval
引数を式として評価することができる。
例
x='$((999+1))' echo $x eval y='$((999+1))' echo $y
結果
$((999+1)) 1000
exit n
終了コードnでスクリプトを終了
- 0が成功、1~125までが、シェルスクリプトで利用できるエラーコード
export
パラメータで指定された変数をサブシェルでも利用できるようにする。
exp01.sh
#!/bin/sh echo $foo echo $bar
exp02.sh
#!/bin/sh foo="not export variable" export bar="export variable" ./exp01.sh
実行結果
# . exp01.sh export variable
printf
書式文字列を生成
エスケープシーケンス
printf "format string" parameter1 parameter2 ...
エスケープシーケンス | 説明 |
---|---|
\\ | \ |
\n | 改行 |
\r | キャリッジリターン |
変換指定文字
変換指定文字 | 説明 |
---|---|
%d | 10進数 |
%c | 文字 |
%s | 文字列 |
%% | %文字そのもの |
コマンド
sed
- 入力ストリームのデータを編集し出力
- パイプラインの中で文字列の置換など
$ sed 's/[ ].*//g' access_log | sort -u | nl
cut
- 入力されたデータから特定のフィールド、範囲を切り出す
© 2006 矢木浩人