Arcen's Blog

アクセスカウンタ

zoom RSS シェルスクリプト

<<   作成日時 : 2011/06/22 12:05   >>

ブログ気持玉 0 / トラックバック 0 / コメント 0

変数


$$自分のPID
$!最後のバックグラウンドプロセスPID
$?最後の終了コード
$-setコマンドのフラグ一覧
$*全引数リスト "$1 $2 $3 $4"
$@全引数リスト "$1" "$2" "$3" "$4"
$#引数の個数
$0コマンド名
$1〜$n引数 10以上は{}でくくる

演算


数値演算


exprコマンド使用
expr 1 + 2
expr 1 - 2
expr 1 \* 2
expr 1 / 2
expr 1 % 2剰余

数値比較


1 -eq 2==
1 -ne 2!=
1 -gt 2>
1 -lt 2<
1 -ge 2>=
1 -le 2<=

文字列評価


文字列長さが0超
-n 文字列長さが0超
-z 文字列長さが0
文字列 = 文字列等しい
文字列 != 文字列等しくない

ファイル評価


-d ファイルディレクトリ
-f ファイルファイル
-L ファイルリンク
-r ファイル読み取り可能
-w ファイル書き込み可能
-x ファイル実行可能
-s ファイルサイズが0超
ファイル -nt ファイル左側が新しい
ファイル -nt ファイル左側が古い

論理演算


! 条件否定
条件 -a 条件AND
条件 -o 条件OR


構文


if文
;でコマンドを連続実行可能

if [ 条件 ]; then
命令
elif [ 条件 ]; then
命令
else
命令
fi

switch文

case 変数 in
   a) 命令 ;; #文字
   *.jp) 命令 ;; #ワイルドカード
   [1-9] | [a-z]) 命令 ;; #正規表現([]形式しか例が見つからず)と論理和
   *) 命令 ;; #残り全て
esac

while/until文
break/continueが使用可能

while/until [ 条件 ]; do
  命令
done

for文
break/continueが使用可能

for 変数 in 引数1 引数2 … ; do
  処理
done

オプション処理



while getopts "s:オプションの種類(値なしはアルファベットのみ、値ありは直後に:をつける)" OPT; do
case $OPT in
"s" ) VALUE_S="$OPTARG";; #:つきの場合値は$OPTARGに入る
esac
done
#前半のオプションを削除。オプションは先頭に固まってある必要がある
shift `expr $OPTIND - 1`

関数



関数名()
{
処理
return 0;#戻り値
}
#呼び出し
RESPONSE=`関数 引数`

変数


引用未定義NULL値有
${変数=値}return 変数=値;return "";return 変数;
${変数:=値}return 変数=値;return 変数=値;return 変数;
${変数-値}return 値;return "";return 変数;
${変数:-値}return 値;return 値;return 変数;
${変数+値}return "";return 値;return 値;
${変数:+値}return "";return "";return 値;


削除はunset 変数名

配列



#初期化 コマンドの実行結果も保存できる
arr = ( "hello" "world" "!" )
$arr #先頭の要素のみ
${arr[@]} #全ての要素
${arr[2]} # 3番目の要素
${#arr[@]} #要素数


リダイレクト



評価は右側から
stdout 1>出力先
stderr 2>出力先
stderrをstdoutに 2>&1

テーマ

関連テーマ 一覧


月別リンク

ブログ気持玉

クリックして気持ちを伝えよう!
ログインしてクリックすれば、自分のブログへのリンクが付きます。
→ログインへ

トラックバック(0件)

タイトル (本文) ブログ名/日時

トラックバック用URL help


自分のブログにトラックバック記事作成(会員用) help

タイトル
本 文

コメント(0件)

内 容 ニックネーム/日時

コメントする help

ニックネーム
本 文
シェルスクリプト Arcen's Blog/BIGLOBEウェブリブログ
文字サイズ:       閉じる