Рейтинг:0

Команда для возврата версии пакета или пустой строки

флаг us

Я ищу простую команду, которая печатает версию пакета, Только если пакет установлен.

Если пакет не установлен (или не является допустимым пакетом), я хочу, чтобы на выходе была пустая строка.

Это то, что я придумал до сих пор. К сожалению, это работает только в тех случаях, когда пакет существует.

dpkg-query --showformat="\${Версия}" --show ubuntu-desktop 
1,469

Однако, когда пакет делает нет существует, вывод - сообщение об ошибке. Я хотел бы, чтобы вывод был пустым или пустым в этом случае.

dpkg-query --showformat="\${Версия}" --show ubuntu-desktopX
dpkg-query: не найдено пакетов, соответствующих ubuntu-desktopX

Как я могу этого добиться?

ОБНОВЛЕНИЕ 1

Можем ли мы добиться этого без использования перенаправления (т.е. 2>/dev/ноль)?

ОБНОВЛЕНИЕ 2

Результат true/false также подойдет, так как я всегда могу получить версию пакета, используя приведенное выше, если результат верен.

флаг hr
*Вывод*, вероятно, *пустой*; сообщение `dpkg-query: не найдено пакетов, соответствующих ubuntu-desktopX`, переходит в поток ошибок `stderr`
флаг us
Действительно, вы правы. Спасибо что подметил это. Тем не менее, позвольте мне добавить ограничение, что я не хочу перенаправлять stderr в `/dev/null`. Интересно, может кто-нибудь что-нибудь придумает.
WinEunuuchs2Unix avatar
флаг in
В конце концов, разве вы не ищете Верно/Ложно, а не Нечто/Ничего?
флаг us
Теперь, когда вы подняли этот вопрос, true false будет работать. (Я всегда могу получить версию пакета, если результат верный).

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.