頭脳一式

人の記憶なんて曖昧なもの。すべての情報を頭に記憶するなんてナンセンス。困ったらここに来ればいいじゃん?

shell

よく使うコマンドと多すぎて覚える気の起きないオプションについてのまとめ。

■演算比較

if文やwhile文の条件で、変数等を数値として評価して比較を行いたい場合は、以下のように記述する。

評価式 意味
数値1 -eq 数値2 数値1と数値2が等しい場合に真(=)
数値1 -ne 数値2 数値1と数値2が等しくない場合に真(!=)
数値1 -gt 数値2 数値1より数値2の方が大きい場合に真(超過)
数値1 -lt 数値2 数値1が数値2より小さい場合に真(未満)
数値1 -ge 数値2 数値1が数値2より大きいか等しい場合に真(以上)
数値1 -le 数値2 数値1が数値2より小さいか等しい場合に真(以下)

■ファイルチェック

if文やwhile文の条件で、ファイルの形式・パーミッション・特性を評価したい場合は以下のように記述する。

評価式 意味
-d path ディレクトリであれば真
-f path ファイルであれば真
-e path ファイルが存在すれば真
-L path シンボリックリンクであれば真
-r path 読取り可能ファイルであれば真
-w path 書き込み可能ファイルであれば真
-x path 実行可能ファイルであれば真
-s path ファイルサイズが0より大きい場合は真
file1 -nt file2 ファイル1がファイル2より新しい場合は真
file1 -ot file2 ファイル1がファイル2より古い場合は真

■特殊変数

変数 意味
$0 スクリプトの名前返す
$1, $2, …, $9 第1引数, 第2引数, …, 第9引数
$# 与えられた引数の数
$* 与えられたすべての引数. 引数全体が"で囲まれている
$@ 与えられたすべての引数. 引数一つ一つが"で囲まれている
$- シェルに与えられたフラグ
$? 最後に行ったコマンドの戻り値
$$ 現在のシェルのプロセス番号
$! 最後にバックグラウンドで行ったコマンドのプロセス番号