- 追加された行はこのように表示されます。
- 削除された行は
このように表示されます。
!!!シェルプログラミング コマンド
[シェルプログラミング]
これらの本からの覚書。
{{amazon 4797327014}}
{{amazon 4873112672}}
!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
{{category 書式}}
書式文字列を生成
::エスケープシーケンス
printf "format string" parameter1 parameter2 ...
,エスケープシーケンス,説明
,\\,\
,\n,改行
,\r,キャリッジリターン
::変換指定文字
,変換指定文字,説明
,%d,10進数
,%c,文字
,%s,文字列
,%%,%文字そのもの
!!コマンド
!sed
*入力ストリームのデータを編集し出力
*パイプラインの中で文字列の置換など
$ sed 's/[ ].*//g' access_log | sort -u | nl
!cut
*入力されたデータから特定のフィールド、範囲を切り出す