Поменяйте местами аргументы команд:
echo "US,CA,CH,JP" | grep US
В:
echo US | grep "US,CA,CH,JP"
вы ищете строку (шаблон) US, CA, CH , JP
во входной строке US
, что не соответствует ожидаемому.
Я бы использовал $echo US | grep -i "US|CA|JP|CH"
Вместо eco дайте ему список или что-то вроде того, где он действительно может искать шаблоны, вместо того, чтобы искать их в "US"
Если вы не ожидали, что запятые будут действовать как «или» оператор, и в этом случае вам просто нужно заменить запятые на каналы и использовать параметр -E
для Расширенные регулярные выражения:
echo US | grep -E "US|CA|CH|JP"
Или замените запятые на символы новой строки:
echo US | grep "US
CA
CH
JP"