1つのケースステートメントで複数の条件が一致できますか?

1つのケースステートメントで複数の条件が一致できますか?

私はこのようなことをしたいと思います。金曜日に、出力は一致する2つの条件です。

#!/bin/bash

#!/bin/bash
NOW=$(date +"%a")
case $NOW in
    Mon)
        echo "Mon";;
    Tue|Wed|Thu|Fri)
        echo "Tue|Wed|Thu|Fri";;
    Fri|Sat|Sun)
        echo "Fri|Sat|Sun";;
    *) ;;
esac

上記のコードを書くと、金曜日の唯一の出力は次のようになります。

火曜日|水曜日|木曜日|金曜日

金曜日の予想出力:

火曜日|水曜日|木曜日|金曜日
|土曜日|日曜日

私が理解したところによると、一般的な状況では最初のモードに対応するコマンドのみ式に一致するコンテンツが実行されます。

パターンに一致する他のコマンドを実行する方法はありますか?

編集:私は探していません倒れる行動しかし、それはまた知っておく価値があるものです。スチールドライバーありがとうございます。

ベストアンサー1

接続会社を使用できます;;&。からman bash

               Using ;;& in place of ;; causes the shell to test
the next pattern list in the statement, if any, and execute  any
associated  list on a successful match.

前任者。与えられた

$ cat myscript 
#!/bin/bash
NOW=$(date -d "$1" +"%a")
case $NOW in
    Mon)
        echo "Mon";;
    Tue|Wed|Thu|Fri)
        echo "Tue|Wed|Thu|Fri";;&
    Fri|Sat|Sun)
        echo "Fri|Sat|Sun";;
    *) ;;
esac

それから

$ ./myscript thursday
Tue|Wed|Thu|Fri

$ ./myscript friday
Tue|Wed|Thu|Fri
Fri|Sat|Sun

$ ./myscript saturday
Fri|Sat|Sun

詳細(他のシェルの対応するものを含む)については、以下を参照してください。

おすすめ記事