-とかく忘れがちなシェルプログラミングの文法などのまとめ

#contents

*sh [#m41416fa]

-bashとかは便利だけど常に入っているとは限らない。どこでも使えるshで組むのが基本

**注意事項 [#v5834160]

スペースの有無でエラーになったりするので注意
たとえばif文は

-これはOK

 if [ $# -ne 2 ]; then

-これはNG

 if [ $# -ne 2]; then

**引数を取得 [#qa0fe686]

引数は順番に$1,$2,$3・・・・と取得できる

-一つ目の引数を表示

 echo $1

**変数の長さ [#q2e8e481]

${#変数名}

**繰り返し処理 [#v9cf52d9]

 TARGET_FILES=`ls *`
 for FILE in ${TARGET_FILES}
 do
  echo ${FILE}
 done

-複数の決まっているファイルを処理したい場合は"a b c"の様に空白で区切って入れる。

**繰り返し処理応用バージョン ファイルの中身を読み込んで処理 [#uc4c1e0a]

 for filename in `cat ファイル名`
 do
        echo $filename
 done


**if文 [#cfe30026]

-ファイルが存在したらその中身を変数に入れる

 if [ -f $RESULT ]; then
 PRE_RESULT=`cat $RESULT`
 fi;

-ディレクトリ存在チェック、なければ処理をしない

 if [ ! -d "/var/tmp" ]; then
    echo "/var/tmp does not exist!" 
    return
 fi



**コマンドを実行してリターンコードの判定例 [#c56d26a1]

-lsを実行して失敗したらメッセージを出す例

 ls hoge
 if [ $? -ne 0 ]; then
    echo "ERROR!!"
    exit
 fi;

**コマンド引数チェック [#na889800]

-2個でなかった場合使用方法を表示して抜けるサンプル

 if [ $# -ne 2 ]; then
        echo "利用方法 $0 引数1 引数2"
        exit
 fi



**関数(サブルーチン、プロシージャ)の定義 [#i18840e1]

 # 引数は$1,$2でつかえる。呼び出し前に定義しておく必要がある。
 doCheck() {
        echo $1
 }
 # 呼び出しは関数名と引数をスペース区切りで
 doCheck "hogehogehoge"


#counter


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS