1

Я пишу сценарий. В чем разница между следующими двумя строками?

grep . || echo something

а также

grep "^\." || echo something

1 ответ1

1

Grep использует регулярные выражения ; там, одна полная остановка . соответствует любому отдельному символу. Чтобы сопоставить буквальный полный стоп / период, вам нужно экранировать его обратной косой чертой, например: \. , ^ означает «начало строки».

Итак, grep . будет соответствовать всему, что содержит один символ (поэтому я предполагаю, что оно не будет соответствовать пустым строкам). С другой стороны, grep "^\." соответствует любой строке, которая начинается с литерала .

В Баш, || означает «или»; grep "^\." || echo something будет echo something если grep не перевернет ни одной строки (поэтому он оценивается как false). && используется для 'и' в bash.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .