シェルスクリプトの正規表現
ずいぶん苦労したぜ。
参考:bashの正規表現マッチングの使い方
if [[ "$1" =~ ^ab[cd]$ ]] ; then echo "matched" else echo "unmatched" fi
ところが実行してみると
kazz@kazz:~/temp$ sh test02.sh abc
test02.sh: 5: [[: not found
unmatchedkazz@kazz:~/temp$
ずいぶん悩んだが、解決。
kazz@kazz:~/temp$ bash test02.sh abc
matched
abckazz@kazz:~/temp$
bashに食わせなければならなかったとは。けっこう方言があるんやね。
こんな書き方も見つけた。
参考:シェルスクリプトのif文で正規表現を使う方法 - FreeBSD初心者運用日記 - freebsdグループ
if expr "$1" : "^ab[cd]$" >/dev/null ; then echo "matched" else echo "unmatched" fi
こっちは比較的スムーズにできた。
kazz@kazz:~/temp$ sh test01.sh abc
matchedkazz@kazz:~/temp$
まだ先は長そう。
if [[....]]
と書くときの真偽の反転の仕方が分からん。ついでに、はてなダイアリーの素の文で上記を表示させる方法も分からん。はてなダイアリー記法に引っかかってしまうんのよね。