Как я перенаправляю вывод к переменной в оболочке? [дубликат]

Этот вопрос уже имеет ответ здесь:

У меня есть сценарий как этот

genhash --use-ssl -s $IP -p 443 --url $URL | grep MD5 | grep -c $MD5

Я хочу генерировать поток genhash в переменной. Как я перенаправляю его в переменную $hash выдерживать сравнение в условном выражении?

if [ $hash -ne 0 ]
  then echo KO
  exit 0
else echo -n OK
  exit 0
fi
186
задан Charles Duffy 11 April 2017 в 11:10
поделиться

3 ответа

Используйте конструкцию $ (...) :

hash=$(genhash --use-ssl -s $IP -p 443 --url $URL | grep MD5 | grep -c $MD5)
314
ответ дан 23 November 2019 в 05:47
поделиться

Думаю, совместимый способ:

hash=`genhash --use-ssl -s $IP -p 443 --url $URL | grep MD5 | grep -c $MD5`

, но я предпочитаю

hash="$(genhash --use-ssl -s $IP -p 443 --url $URL | grep MD5 | grep -c $MD5)"
18
ответ дан 23 November 2019 в 05:47
поделиться

Вы можете сделать:

hash=$(genhash --use-ssl -s $IP -p 443 --url $URL)

или

hash=`genhash --use-ssl -s $IP -p 443 --url $URL`

Если вы хотите получить результат весь конвейер, который будет назначен переменной, вы можете использовать весь конвейер в приведенных выше назначениях.

3
ответ дан 23 November 2019 в 05:47
поделиться