Я нашел этот вопрос, когда гуглил для конкретной проблемы, с которой я включил пипетированную команду в команду grep
, которая использовала оператор чередования в регулярном выражении, поэтому я подумал, что я внесу свой дополнительный специализированный ответ.
Ошибка, с которой я столкнулся, оказалась с предыдущим оператором канала (т. Е. |
), а не с оператором чередования (т. Е. |
идентично оператору канала) в регулярном выражении grep. Для меня ответом было правильно экранировать и при необходимости указать специальные символы оболочки, такие как & , прежде чем предположить, что проблема связана с моим регулярным выражением grep, в котором задействован оператор чередования.
Например, команда, которую я выполнил на локальном компьютере, была:
get http://localhost/foobar-& | grep "fizz\|buzz"
Эта команда вызвала следующую ошибку:
-bash: syntax error near unexpected token `|'
Эта ошибка была исправлена путем изменения моей команды на:
get "http://localhost/foobar-&" | grep "fizz\|buzz"
Избавившись от символа &
с двойными кавычками, я смог решить свою проблему. Ответ не имел никакого отношения к операции чередования.