単語(値)がカンマ区切りリストにあることを確認してください。

単語(値)がカンマ区切りリストにあることを確認してください。

以下のコードでは2一致しないはず21ですが、結果は「一致」です。

SOURCE値が内側にあるかどうかを確認できますかLIST

LIST="1,21,3,4"
SOURCE="2"
if echo "$LIST" | grep -q "$SOURCE"; then
  echo "matched";
else
  echo "no match";
fi

ベストアンサー1

標準技術は

if echo ",$LIST," | grep -q ",$SOURCE,"
then
  echo "matched"
else
  echo "no match"
fi

(またはと言うこともできますgrep -q ",$SOURCE," <<< ",$LIST,")。検索は2一致します21が、検索は,2,一致しません,21,。探している数字が最初または最後の数字$LIST の場合は、始めと終わりにコンマを追加する必要があります。$SOURCE

grep -q ",1," <<< "1,21,3,4"

失敗するでしょう。

おすすめ記事