正規表現と一致しません。

正規表現と一致しません。

カスタムJBossをインストールするBashスクリプトがあります。 JBossインスタンス名を正規表現と比較して有効な名前であることを確認してください。

if [[ ! $1 =~ $instanceNameRegex ]]; then
    exit 1
fi

これで、2番目の有効な正規表現が必要です。つまり、名前はまた$instanceNameRegexはと一致する必要があります$secondInstanceNameRegex

ifテストでどのようにこれを達成できますか?私はこれを探していますが、動作させることはできません。

if [[ [ ! $1 =~ $instanceNameRegex ] -a [ ! $1 =~ $secondInstanceNameRegex ] ]]; then

つまり、引数が最初の正規表現と一致せず、2 番目の正規表現と一致しない場合は終了します。

答え1

あなたはできます

if [[ ! $1 =~ $instanceNameRegex && ! $1 =~ $secondInstanceNameRegex ]]; then

私は次を使うでしょう:

if [[ ! ( $1 =~ $instanceNameRegex || $1 =~ $secondInstanceNameRegex ) ]]; then

答え2

これはあなたに役立ちます:

if [[ ! $1 =~ "${instanceNameRegex}|${secondInstanceNameRegex}" ]]; then

関連情報