присваивать значение переменной на основе ответа grep - PullRequest
0 голосов
/ 09 января 2020

Мне нужно проверить подстроку в строке. Если присутствует, тогда присвойте некоторое значение переменной FILE, а если нет, то присвойте какое-то другое значение той же переменной FILE.

Ниже я попробовал:

FILE="$(hostname -f | grep ".dev." &&  echo "data.txt.pp" || echo "data.txt")"; echo $FILE

Но на выходе Переменная $ FILE:

hostname.corp.com data.txt.pp

Я вижу, что имя хоста также распечатывается. Я просто хочу либо data.txt.pp, либо data.txt. Если имя хоста содержит .dev., тогда я хочу, чтобы переменная FILE была data.txt.pp, иначе она должна иметь data.txt. Что я не так делаю?

1 Ответ

1 голос
/ 09 января 2020

Добавить -q:

hostname -f | grep -q "\.dev\." && echo "data.txt.pp" || echo "data.txt"

Избегать использования переменных UPPER CASE, они зарезервированы для системного использования

...