- 締切済み
Bシェルのif文
if文の否定について教えてください。 if $aa='xxx' then else echo yyy fi 間違っているかもしれませんが上に書いたことをやろうとしています。 他の言語の if(!($aa='xxx'))echo yyy; をBシェルのif文で書くにはどうしたらいいですか? $aa='xxx'を$aa!='xxx'にするのではなくて、その外側のifの書式を教えてください。 最初に書いたコードでは、if(!条件)を知らないので if(条件) else 処理 endif のように書きました。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- notnot
- ベストアンサー率47% (4900/10358)
回答No.4
sh の if 文はコマンドを実行してそのステータスコードでthenかelseかを実行します。コマンドとしては、test, grep 等が良く使われます。今回は test ですね。詳しくは man test で調べてください。#1 さんの書かれた [ コマンドも testコマンドの別名です。 色々書けますが、!= 演算を使わないで書くとすると、 if test ! $aa = xxx then echo yyy fi …if test ! \( $aa = xxx \) とカッコで囲んだほうがわかりやすいかも。 if test $aa = xxx then : else echo yyy fi 注…thenの後を空に出来ないので何もしないコマンド : を書いておく あるいはif文を使わないで、 test $aa = xxx || echo yyy とか case $aa in xxx) ;; *) echo yyy;; esac も使われます。