Bash - Двойные кавычки в Backtick - PullRequest
2 голосов
/ 15 сентября 2011

Я использую следующие условия в bash-скрипте:

if `grep -q "${ACTION_LABEL} Action" "${OVERRIDE_ACTIONS}"`; then
  ....
fi

Это в основном работает. За исключением случаев, когда какая-либо часть пути в $ {OVERRIDE_ACTIONS} содержит пробел, grep завершается ошибкой. Как я могу заставить это работать с путями, содержащими пробелы>

1 Ответ

8 голосов
/ 15 сентября 2011

Снять галочки:

if grep -q "${ACTION_LABEL} Action" "${OVERRIDE_ACTIONS}"; then
    ...
fi

Почему? grep вернет значение 0, если ему удалось найти случаи для вашего паттерна, или 1, если он потерпел неудачу. Тело оператора if будет выполнено, если условие оценивается как 0.

...