超メモ帳(Web式)@復活

統合失調症を患い、はてなからも逃亡。現在、復活のため準備中。


SPONSORED LINK

シェルスクリプトのお勉強


普段、シェルスクリプトなど使わないのだけれども、使う機会が出来たのでちょっとメモするよ。
ちなみにcshやbach,zshでは無くて、普通のsh。このあたりの書き分けはめんどくさいよね。

if文

if [ "条件1" ]; then

elif [ "条件2" ]; then

else

fi
比較式

■数値の場合

オプション 使用例 オプションの意味 数式 略しなかった場合
-eq num1 -eq num2 num1とnum2が等しければ真となる。 num1=num2 equal
-ne num1 -ne num2 num1とnum2が等しくなければ真となる。 num1≠num2 not equal
-lt num1 -lt num2 num1がnum2より小ならば真となる。 num1 less than
-le num1 -le num2 num1がnum2以下ならば真となる。 num1≦num2 less than or equal
-gt num1 -gt num2 num1がnum2より大ならば真となる。 num1>num2 greater than
-ge num1 -ge num2 num1がnum2以上ならば真となる。 num1≧num2 greater than or equal

■文字列の場合


等しい場合

if [ "A" = "B" ]; then
fi


等しくない場合

if [ "A" != "B" ]; then
fi




ここでちょっとつまずいたこと、文字列の比較対象に変数を置くとき、変数が空の場合には下記のようなエラーが出ます。


[: 10: =: unexpected operator


この場合には変数を"(ダブルクォーテーション)で囲みましょう。

if [ "$D" = "abc" ]; then
fi


http://www.geocities.jp/geo_sunisland/if_and_test.html


tips


後、初歩的な事だけどつまずいた。変数に値を代入する場合は、スペースは空けないこと。

# NG
DATE = "20100727"

# OK
DATE="20100727


その他には、コマンドを変数に代入するには逆クォーテーション(`)で囲むこととか。

DATE=`date --date '1day ago' '+%Y%m%d'`


以上。



UNIXシェルスクリプト逆引き大全333の極意

UNIXシェルスクリプト逆引き大全333の極意

プライバシーポリシー免責事項