3

私はこのコードを使用して、配列に存在する場合は1つの$ varをチェックしています:

 if echo ${myArr[@]} | grep -qw $myVar; then echo "Var exists on array" fi

チェックに複数の$varsを組み合わせるにはどうすればよいですか?grep -qw $ var1、$var2のようなもの; 次に...fi

前もって感謝します。

4

3 に答える 3

1

実際にはこれは必要ありませんgrep。Bash は拡張正規表現自体を完全に実行できます (Bash 3.0 以降)。

pattern="$var1|$var2|$var3"

for element in "${myArr[@]}"
do
    if [[ $element =~ $pattern ]]
    then
        echo "$pattern exists in array"
        break
    fi
done
于 2013-03-17T12:03:35.147 に答える
0

二次関数ですが、スペースを認識しています:

myArr=(aa "bb c" ddd)

has_values(){ 
  for e in "${myArr[@]}" ; do
    for f ; do
      if [ "$e" = "$f" ]; then return 0 ; fi
    done
  done 
  return 1
}

if has_values "ee" "bb  c" ; then echo yes ; else echo "no" ; fi

この例では no が出力されます。"bb c" != "bb c"

于 2013-03-17T11:59:38.747 に答える