■特殊な変数
変数 | 説明 |
---|---|
$# | シェル引数の数 | $0 | シェル自身のファイル名 | $1〜$n | シェルの各引数 | $* | シェルの全引数リスト(スペース区切り) | $@ | シェルの全引数リスト | $$ | シェルのプロセスID | $! | 最後に実行したバックグラウンドプロセスID | $? | 最後に実行したコマンドの終了コード |
演算子
■共通の演算子
演算子 説明
a -a b AND
a -o b OR
■文字列用演算子
演算子 説明
-z 文字列長が0ならtrue (zero)
-n 文字列長が0より大ならtrue (not zero)
a = b 2変数が等しければtrue
a != b 2変数が等しくなければtrue
■整数用演算子
演算子 説明
a -eq b 2変数が等しければtrue (equal)
a -ne b 2変数が等しくなければtrue (not equal)
a -lt b aがbより小ならtrue (less than)
a -le b aがb以下ならtrue (less than equal)
a -gt b aがbより大ならtrue (greater than)
a -ge b aがb以上ならtrue (greater than equal)
■ファイル用演算子
演算子 説明
-d ディレクトリならtrue (directory)
-f ファイルならtrue (file)
-s ファイルサイズが0より大ならtrue (size)
-e ファイルが存在するならtrue (exist)
-r ファイルが読み込み可能ならtrue (readable)
-x ファイルが実行可能ならtrue (executable)
-w ファイルが書き込み可能ならtrue (writable)
-o ファイルの所有権があるならtrue (owned)
-L ファイルがシンボリックリンクならtrue (Link)
a -nt b aファイルがbファイルより新しければtrue (newer than)
a -ot b aファイルがbファイルより古ければtrue (older than)
■変数処理
path=/path/to/file.txtのようなデータとする
varは任意の文字列
項目 説明
${path:h} pathのディレクトリ階層(head)
${path:t} pathのファイル名(tail)
${path:r} pathの拡張子以外のファイル名(root)
${path:e} pathの拡張子(extension)
${path:a} pathの絶対パス(all)
${var:=値} varが初期化されていなければ値を変数に代入
${var:-値} varが初期化されていなければ代わりに値を返す
${var:+値} varが初期化されていれば代わりに値を返す
${var:?メッセージ} varが初期化されていなければメッセージを返す
${var#正規表現} 前方一致で最短マッチの文字列
${var##正規表現} 前方一致で最大マッチの文字列
${var%正規表現} 後方一致で最短マッチの文字列
${var%%正規表現} 後方一致で最大マッチの文字列
${var/文字列1/文字列2} 文字列1を文字列2に置換
■リダイレクト
項目 説明
1> file 標準出力(1は省略可能)をファイルに上書き
2> file 標準エラー出力をファイルに上書き
>> file 標準出力をファイルに追記
2>> file 標準エラー出力をファイルに追記
>&- 標準出力をクローズ
command > file 2>&1 標準出力&標準エラー出力
command > /dev/null 2>&1 実行結果やエラーメッセージをすべて捨てる
0< file 標準入力(0は省略可能)にファイルから読み込む
<< word 標準入力にヒアドキュメントを読み込む
<&- 標準入力をクローズ
: > file ファイルのゼロリセット
なお上記についてfileの部分は&m (mは数字)というファイルディスクリプタ番号を指定することで1の標準出力や2の標準エラー出力以外の独自の番号にリダイレクトできます。
■シグナル
trapなどで使うシグナルの一覧
trap ‘commands’ 番号(複数可)
で呼び出して使ったりする
項目 説明
1 SIGHUP ハングアップシグナル
2 SIGINT キーボードからの割り込みシグナル
3 SIGQUIT キーボードからの中止シグナル
9 SIGKILL プロセス強制終了のキルシグナル
15 SIGTERM アプリ終了のシグナル
以上です。