1. ホーム
  2. string

[解決済み] Bashで文字列を複数の正しい値と比較するにはどうすればよいですか?

2023-05-02 21:38:14

質問

次のようなBashスクリプトがあります。

function get_cms {
    echo "input cms name"
    read cms
    cms=${cms,,}
    if [ "$cms" != "wordpress" && "$cms" != "meganto" && "$cms" != "typo3" ]; then
        get_cms
    fi
}

しかし、私が何を入力しても(正しい値も間違った値も)、この関数は二度と呼び出されません。なぜなら、私はこれら3つの入力のうち1つだけを許可したいからです。

私はそれを || で試してみました。 [ var != value ] or [ var != value1 ] or [ var != value1 ] を追加しましたが、何も動作しません。

誰か正しい方向を示してくれませんか?

どのように解決するのですか?

と言うのではなく

if [ "$cms" != "wordpress" && "$cms" != "meganto" && "$cms" != "typo3" ]; then

と言う。

if [[ "$cms" != "wordpress" && "$cms" != "meganto" && "$cms" != "typo3" ]]; then

また 条件付き構成要素 .