シェルスクリプト えとせとら

-------------------------------------

シェルスクリプト

あちこちネット検索が手間なのでメモ

-------------------------------------

【気をつけること】 ・文字と改行コードに注意

【変数】 $0 ・・・スクリプト名 $n ・・・第 n 引数の値 $# ・・・引数の個数

【算術】 NUM=expr ${NUM} + 10 NUM=expr ${NUM} ¥* 10

【 if 】 if[ ] then fi

○ 形式 -b ファイル名 ・・・ブロックデバイスファイルなら真 -c ファイル名 ・・・キャラクタデバイスファイルなら真 -d ファイル名 ・・・ディレクトリなら真 -f ファイル名 ・・・通常ファイルなら真 -L ファイル名 ・・・シンボリックリンクなら真 -p ファイル名 ・・・名前つきパイプなら真 -S ファイル名 ・・・ソケットなら真

○ パーミッション -g ファイル名 ・・・SGIDがセットされてるなら真 -k ファイル名 ・・・スティッキービットがセットされてるなら真 -r ファイル名 ・・・読み取り可能なら真 -u ファイル名 ・・・SUIDがセットされてるなら真 -w ファイル名 ・・・書き込み可能なら真 -x ファイル名 ・・・実行可能なら真

○ その他 -e ファイル名 ・・・ファイルが存在すれば真 -s ファイル名 ・・・ファイルサイズが0より大きければ真

○ 数値 1 -eq 2 ・・・1と2は同じなら真 1 -ge 2 ・・・1が2以上なら真 1 -gt 2 ・・・1が2より大きいなら真 1 -le 2 ・・・1が2以下なら真 1 -lt 2 ・・・1が2未満なら真 1 -ne 2 ・・・1が2等しくなければ真

【 case 】 case ${STR} in   sec)     echo "sec"     ;;    min)     echo "min"     ;; esac

【 for 】 for num in "a b c" do   echo ${num} done

結果 a b c

【 while 】 ○ 10回繰り返し i=0 while[ $i -le 10 ] do   i=$i + 1 done

○ ファイルから読み込み while read line do   echo ${line} done < test.txt