ShellスクリプトのTipsです。
シェル変数の初期化をする
変数に値が設定されていない場合は、指定された値を返します。
1
| |
パラメーターを取得する
$@ にパラメーターが格納されています。
例えば以下の記述をした for.sh ファイルを作成します。
1 2 3 | |
以下のように出力されます。
1 2 3 | |
評価結果を変数に格納する
"$()" で囲めば、評価結果を変数に格納することができます。
1 2 3 4 5 6 7 8 9 | |
if と test コマンドの合わせ技
ifとtestコマンドを使う場合はtestコマンドを省略した[]がよく使われます。
[ 文字列1 = 文字列2 ]
[ 数値1 オプション 数値2 ]
[ オプション 評価対象 ]
[ の直後と ] の直前には必ず半角スペースが必要です (無いと正常に動作しません)。
ちなみに比較は == でなくて =です。
シェルの比較は文字列の比較と数値の比較があり、それぞれに対応するオペレーターがあります。
そのせいで複雑になっている印象があります。
数値の比較
数値1と数値2が等しいかどうか
-eq、もしくは =を使います。
1 2 3 4 | |
数値1と数値2が等しくないかどうか
-ne を使います。
1 2 | |
!= でも動作しますが、慣習的にあまり使わないようです。
文字列の比較
文字列1と文字列2が等しいかどうか
同じ場合にtrueを返す=と その否定である != を使います。
1 2 | |
ちなみに数値の比較に使う -eq で比較したところエラーとなりました。
1 2 3 | |
文字列1と文字列2が等しくないかどうか
文字列比較のNOT条件
!=を使用します。
1
| |
数値比較のNOT条件
数値の比較の場合は -ne オプションを使うのが慣習のようです。
1
| |
変数が空かどうか
1
| |
空でないかを判定する場合は -n を使います。
1
| |
findで抽出したファイルをreadコマンドで1行ずつ処理する
1
| |
実行ファイルのあるパスを取得する
1
| |
1つ上のディレクトリは以下のように取得する
1
| |