Как использовать dpkg в тихом режиме

Я пытаюсь проверить, установлены ли какие-либо пакеты в моем скрипте, прежде чем запускать его. Для этого используйте команду dpkg. Это мой код:

dpkg -s dialog
dialogStatut=$?

if [ "$dialogStatut" -eq 1 ]; then
    //Install package
fi 

Я хотел бы сделать dpkg в тихом режиме (без эха). Я пытался поставить >&- 2>&- за командой, но если я это сделаю, значение всегда равно 2 (если диалог установлен или нет).

Я не нашел решения в man dpkg. Как лучше всего это сделать?


person Mattasse    schedule 15.12.2016    source источник


Ответы (2)


Вы ищете 2> /dev/null

if ! dpkg -s dialog 2> /dev/null; then
    ...
fi

Подумайте о том, чтобы просто выйти из своего скрипта, чтобы позволить dialog быть установленным явно, а не возлагать на него ответственность за это.

person chepner    schedule 15.12.2016

я бы сделал что-то вроде

dpkg -l dialog &>/dev/null || apt-get install dialog

Специальность с ИЛИ (||), если первое условие оценивается как истинное (т. е. выходной статус равен нулю), то второе условие не будет оцениваться.

person sjsam    schedule 15.12.2016