bash if [-n "$ output of variable"] - PullRequest
       21

bash if [-n "$ output of variable"]

0 голосов
/ 29 сентября 2011
line=$(grep "# rvm line" ~/.bashrc)

if [ ! -n "$line" ]; then
  echo "found"
else
  echo "not found"
fi

Что не так с моими цитатами в первой строке?

РЕДАКТИРОВАТЬ: проблема set -o errexit, которую я использую в моем сценарии. Я полагаю, -n обрабатывается как ошибка, выход из следующих процессов. Как я могу преодолеть это, сохраняя проверку ошибок? (Альтернативы -n тоже могут сработать).

Ответы [ 2 ]

3 голосов
/ 29 сентября 2011

Если вы не планируете использовать $line для чего-либо другого, кроме тестирования, если оно пустое или нет, то вы также можете сделать это:

if grep -q '# rvm line' ~/.bashrc; then
  echo "found"
else
  echo "not found"
fi
1 голос
/ 29 сентября 2011

Nothing

Нет ничего плохого в кавычках? Вы не получаете ожидаемый результат?

хорошо, ваше условие if неверно - если оно предназначено для проверки того, что что-то было возвращено оператором grep. Я оставлю это в качестве подсказки для себя, чтобы выяснить. Гудлак

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...