• ベストアンサー

bashのif文でアンドやオア条件判定できますか?

if [ "$S" = "1"]; then if [ "$SS" = "2"]; then ... fi fi これをアンドで繋げる書き方ってあるのでしょうか? C言語でいう if (s==1 && ss==2){ } のように

質問者が選んだベストアンサー

  • ベストアンサー
  • a-kuma
  • ベストアンサー率50% (1122/2211)
回答No.1

こんな感じ。 if [ "$S" = "1" -a "$SS" = "2" ] then  … fi 因みに、or は、-o でつなげます。 マニュアルを参照するならば、man test で。

参考URL:
http://www.linux.or.jp/JM/html/GNU_sh-utils/man1/test.1.html
sha-girl
質問者

お礼

ありがとうございます。解決しました。

関連するQ&A

  • エクセルのIF関数でORとANDの組み合わせ方

    エクセルのIF関数でORとANDの組み合わせ方を教えてください。 =IF(AND(C1>10,A1>B1),"S","") =IF(AND(C1>10,A1<B1),"L","") この2つの式をORで1つの式にするにはどのように組み合わせれば良いのでしょうか? よろしくお願いいたします。

  • bashのif文複数条件について

    お世話になります。 まず、下記のスクリプトをご確認ください。 if [ ! -f ${E_FILE} -o -f ${E_FILE} -a `grep -c 'ERROR' ${E_FILE}` -ne 0 ] ; then 上記条件文は次のような論理解釈で作成しました。 (${E_FILE}というファイルが存在しない) or  (${E_FILE}というファイルが存在する and ファイル内に'ERROR'という文字列が存在する) これを実行すると: too many argumentsというエラーが返ってきます。 原因をご存知の方がいればご教示いただきたく存じます。 よろしくお願いいたします。

  • (Excel VBA)and,orについて

    andとorを同時に使用する場合について質問です。 Case1) if A=1 and B=1 or C=1 then これは「Aが1かつBが1であるか、又はCが1であれば」という意味か 「Aが1であり、かつBが1であるか又はCが1であれば」という意味なのか どちらでしょうか。 Case2) if A=1 or B=1 and C=1 then 次に、この場合はどちらの意味でしょうか。 よろしくお願いします。

  • bash ファイルなし判定

    現在bash scriptにおいてファイル存在判定を下記のように しています。 if [ -s "tmp.txt" ]; then (dummy=1) else echo " no [tmp.txt] file" exit fi -sでファイルがある場合のelseとしていています。 if文で直接ファイルが"ない"という判定はどのように 記載するのでしょうか?

  • 【bash】elifではない条件分岐

    bashスクリプトにて3つの条件を、If~elif~elseを使って分岐させていたのですが、 それぞれの条件を全て確認させたいという要件に変更となり、下記のように修正しました。 if (条件1); then <処理1> fi if (条件2); then <処理2> fi if (条件3); then <処理3> fi else <処理4> fi <処理5> 条件1~3はそれぞれ当てはまった場合に処理1~3を行い、 条件1~3にいずれも当てはまらなかった場合処理4を行う。 ↑上記全て終了したら処理5を行う という動きが希望なのですが、これですと条件1~3にいずれも 当てはまらなかった場合に処理4が行われません。 と、言うより先に最後のfiでsyntax errが出たので、処理4の後の fiを外したのですが、処理4と処理5が並列に扱われて? 両者とも行われなくなってしまいました。 書いていて、何となく条件1~3の前にさらにifを被せるのかなとも 思うのですが、イマイチぼんやりしています。 宜しくお願いいたします。

  • bashのif文で構文エラー:

    bashで時間の比較によっての分岐を考えています。 ネットで検索しながらif構文を下記のようにしてみているのですが、 行 10: 構文エラー: 予期しないファイル終了 (EOF) です となってしまいます。 どなた様かお教え願えませんでしょうか #!/bin/bash DATA=`date +%-H%M` if [ $DATA -gt 600 ];then echo "$DATA" else echo "NG" fi 

  • 【ExcelVBA】IF条件を満たしているのに、IF条件のところで止まってしまう

    Sub test1() 変数1 = IsEmpty(Range("C1")) If Range("A1") > 0 And Range("B1") = 0 And 変数1 = True Then   test2 End If End Sub 止まったときのデバッグでの表示は Range("A1")は「100」(セルの中身) Range("B1")は「0」(セルの中身) 変数1はRange("C1")がエラー表示なので「True」 すべての条件を満たしているのですが、 IF条件のところで止まってしまいます。 (IF条件のところの1行が黄色くハイライトになっている状態) 止まったデバッグの後に、F5を押して実行させると、 IF条件の続きから実行されて、test2が実行されて処理が終了します。 何で、IF文のところで一度止まってしまうのかわかりません。

  • If構文のOr,Andを二度書きしないには?

    どのOrにも共通する長い条件を一度の記述で済ますにはどうするのでしょうか? もし日付が20日でC3セルが「1」でK3セルが「0」の場合で、かつ  H3セルが800以上  E3セルが5000以下  F3セルが10000以下 のどれかに該当すればメッセージを表示せよというマクロです。       If Day(Date) = 20 And Worksheets(1).Cells(3, 3) = 1 And Cells(3, 11) = 0 And Cells(3, 8) > 800 _ Or ~ And Cells(3, 5) < 5000 _ Or ~ And Cells(3, 6) < 10000 _ Then MsgBox "○○" 単純な記述で”~”にDay ~ =0 の部分を3行とも繰り返し書くと、とても見づらいです。 これを一度の記述で済ますには、どう書くのでしょうか。

  • 長いIF文を短くしたい

    よろしくお願いします いつもgooのみなさんに大変お世話になっております マクロは2カ月ほど前から勉強しています お陰様で、私のマクロも日々進歩できています エクセルのバージョンは2013です 質問内容 長いIF文を短くしたい IF 条件1 and 条件2 and 条件3 and 条件4 and 条件5 Then   処理 End If このようにIF文が長いために、マクロ編集画面が見にくくなっています Select Case を使わずに短くする方法はないでしょうか?

  • vbsのif文で複数条件の判定

    例えば以下である場合、 WScript.echo AAA WScript.echo BBB vbsを実行すると "?"が表示されます。 "OK"が表示されない原因として考えられる事はありますでしょうか If AAA = false Then If BBB = false Then WScript.echo "OK" else WScript.echo "NG" End If else WScript.echo "?" End If