| ページ一覧 | ブログ | twitter |  書式 | 書式(表) |

MyMemoWiki

シェルプログラミング コマンド

提供: MyMemoWiki
ナビゲーションに移動 検索に移動

シェルプログラミング コマンド

シェルプログラミング |

これらの本からの覚書。

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

  • 入力されたデータから特定のフィールド、範囲を切り出す