Я написал следующую команду, чтобы сопоставить $ a с $ b, но когда значение включает «-», я получаю сообщение об ошибке. Как я могу избежать этого?
# a="-Xmx5324m"
# b="-Xmx5324m"
#
#
# echo "$a" | grep -Fxc "$b"
grep: conflicting matchers specified
[[ ... ]]
или case
будет лучшим выбором, так как вы избегаете оба идиосинкразии echo
и дочерних процессов.
grep
как буквальный символ, а не как начало опции, т.е. echo test-test | grep "\-test"
будет соответствовать, а не жаловаться на неизвестный -t
флаг.
grep -Fxc -- "$b" <<< "$a"
избежать ненужного канала