HobNote
ShellScript
since 2003.04.26
last update 2011.05.31



Contents



シェルの種類(代表例)





シェル変数の代入

シェル変数に使用できる文字は、アルファベット、数字、アンダースコアが使用できる。
また、アルファベットは、大文字/小文字の区別がある。
シェル変数の代入文の=の前後に空白をいれてはいけないので注意。


入力方法の種類は、 がある



特殊なシェル変数



IFS(Internal Field Separator)

デリミタのこと。基本的にスペース、タブ、改行がそれにあたる。 また、新しい値を追加することも可能。





クォーテーション

1)バックスラッシュ (\)
 直後の1文字の特殊な意味をなくす。(エスケープキャラクタともいう)
2)シングルクォテーション(')
 文字列は、全て一つの文字列扱い。
3)ダブルクォテーション (¨)
 ほとんどの文字が通常の文字列扱い。
 ただし、$、バッククォート(')、バックスラッシュ (\)は、""で囲んでも特殊文字扱い。
4)バッククォート(')
 コマンド置換に用いる。実行時、スクリプト内のバッククォートで囲んだコマンドを実行し
 その位置に結果を書き込む。



ワイルドカード(wildcard)

ワイルドカード例 内容
* 全ての文字列(他のワイルドカードとあわせた場合文字がない場合も含む)
? 1文字のみ
[a1b2c] []内の文字であるa,b,c,1,2が含まれているもの
[a-z] []内の文字であるa〜zのどれかが含まれているもの
[!a-z] []内の文字であるa〜zのどれかが含まれていないもの
??* 2文字以上
[A-Z]* 文字列の先頭にA〜Zの1文字が含まれているもの
*[0-9] 文字列の最後に0〜9の1文字が含まれているもの



正規表現

検索、置換を行なうときに定義するマッチする文字列のテンプレート

テンプレート  /正規表現/

/Strings/  =Stringsに一致

/^Strings/  =行頭のStringsに一致

/^..../  =行頭の4文字に一致

/...*/  =3文字以上あれば一致(*は、0文字以上)

/[Strings]/  =Strings中のどれかに一致

/[^Strings]/  =Strings中のどれもなければ一致



コマンドセパレータ




制御文(control statement)

(if,case,for,while)とtest








組込みコマンド

umask:ファイル生成時のモード(読み込み、書きこみの許可)のマスクを指定する。



ファイルの読み込み




ファイル名を拡張子で検索して処理




指定回数ループ




stdout,stderrからfileへの出力

コマンドを実行したときに標準出力(stdout)、標準エラー(stderr)に出力される文字列を合わせてfileに出力するには

shの場合

csh.tcshの場合