シェルスクリプトで、配列内の文字列と一致しない場合の処理を記述する
Pocket

シェルスクリプトで、配列内の文字列と一致するかどうかで動作を切り替えたい事があったので、その備忘。
関数を作成しない場合、以下のようにすることで配列内に値がない場合は指定した動作を行わせる事ができる。

Sponsored Links

例)array配列内に、変数wordで指定した文字列がない場合、ifで指定した処理を実行させる。

#!/bin/sh
array=("one" "two" "three");
word=$1

if ! `echo ${array[@]} | grep -q "$word"` ; then
    echo "値がありませんでした"
fi
[root@test-centos7 ~]# sh -x /work/test4.sh one
+ array=("one" "two" "three")
+ word=one
++ echo one two three
++ grep -q one
[root@test-centos7 ~]# sh -x /work/test4.sh four
+ array=("one" "two" "three")
+ word=four
++ echo one two three
++ grep -q four
+ echo $'\345\200\244\343\201\214\343\201\202\343\202\212\343\201\276\343\201\233\343\202\223\343\201\247\343\201\227\343\201\237'
値がありませんでした

 

その他にも色々とやり方があるようなので、興味があるのであればこちらを参考にすると良いだろう。

Pocket

Written by blacknon

インフラ系のSE。一時期はプログラマ。 仮想化とオープンソースに興味あり。一日中寝てたい今日このごろ。 スペインとかで働きたいなぁ…(シエスタがあるので)

Leave a Comment

メールアドレスが公開されることはありません。