Bash Caseステートメントで文字列パターン(スペースで区切られた単語)に「ジョーカー」またはワイルドカードを使用する方法は?

Bash Caseステートメントで文字列パターン(スペースで区切られた単語)に「ジョーカー」またはワイルドカードを使用する方法は?

「非常に具体的な」文字列パターン(スペースを含む複数の単語)に対してbashの「case」文を使用する方法は?

問題は、非常に特定の関数のバージョン番号を含む複数の単語で構成される文字列を受け取ったことです。これで、バージョン番号が随時変更されます。ケースの説明にますます具体的な文字列パターンを追加する代わりに、clown(または「Ubuntu 16.04。しかし、見つかりませんでした。まだ解決策はありません。

これまで使用したシェルスクリプトを参照してください。

    .
    .
    .
    case "${OS}" in
    "SUSE Linux Enterprise Server 11 SP4")
        echo "SLES11 detected."
        ;;
    "Ubuntu 16.04.3 LTS" | "Ubuntu 16.04.4 LTS"     )
        echo "UBUNTU16 detected."
        ;;
    "CentOS Linux 7 (Core)")
        echo "CENTOS7 detected."
        ;;
    *)
        echo "Unknown OS detected. Quitting for safety reasons."
        exit -1
        ;;
    .
    .
    .

ベストアンサー1

Caseステートメントではパターンを使用できますが、引用符で囲むことはできないため、スペースをエスケープする必要があります。

case ${OS} in
"SUSE Linux Enterprise Server 11 SP4")
    echo "SLES11 detected."
    ;;
Ubuntu\ 16.04.[3-4]\ LTS)
    echo "UBUNTU16 detected."
    ;;
"CentOS Linux 7 (Core)")
    echo "CENTOS7 detected."
    ;;
*)
    echo "Unknown OS detected. Quitting for safety reasons."
    exit -1
    ;;

おすすめ記事