私はこのコードを使用して、配列に存在する場合は1つの$ varをチェックしています:
if echo ${myArr[@]} | grep -qw $myVar; then echo "Var exists on array" fi
チェックに複数の$varsを組み合わせるにはどうすればよいですか?grep -qw $ var1、$var2のようなもの; 次に...fi
前もって感謝します。
私はこのコードを使用して、配列に存在する場合は1つの$ varをチェックしています:
if echo ${myArr[@]} | grep -qw $myVar; then echo "Var exists on array" fi
チェックに複数の$varsを組み合わせるにはどうすればよいですか?grep -qw $ var1、$var2のようなもの; 次に...fi
前もって感謝します。
実際にはこれは必要ありません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
二次関数ですが、スペースを認識しています:
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"