Сделайте оценку состояния молча - PullRequest
1 голос
/ 12 марта 2019

Мне нужно проверить, установил ли я программное обеспечение по моему сценарию, фрагмент кода показан ниже

if ! command -v PackageABC
then
   echo "Please install PackageABC"
fi

В первой строке всегда выводится корневая информация для PackageABC. Как я могу выполнить оценку состояния без вывода сообщений?

Я пытаюсь добавить & в конце if ! command -v PackageABC &, но это не сработает.

Ответы [ 3 ]

3 голосов
/ 12 марта 2019

То, что вы видите, это стандартный вывод и / или stderr. Вы должны отказаться от обоих, один из способов сделать это - перенаправить их на нуль, используя [command] > /dev/null 2>&1 (см. Как перенаправить stderr )

if ! command -v PackageABC > /dev/null 2>&1 ; then
    echo "Please install PackageABC"; 
fi
2 голосов
/ 12 марта 2019

Перенаправьте вывод, как это:

if ! command -v PackageABC > /dev/null
then
   echo "Please install PackageABC"
fi

Вы можете даже сделать его одной строкой:

[ ! $(command -v PackageABC >/dev/null) ] && echo "Please install PackageABC"
0 голосов
/ 12 марта 2019

Не совсем то, что вы просили, однако ниже приведен один из способов проверки, установлен ли пакет или нет, без нежелательного вывода вашего подхода:

if rpm -qa | grep -q package_name 
then 
  echo "Package is installed"
else
  echo "Package not installed"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...