Я могу сделать эти команды приятно на командной строке моей Ubuntu 16.04 (гостеприимная) установка:
apt list --installed
apt list --installed | grep grep
Stdout получает результаты и также эту строку:
WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
При помещении этого в сценарий я предполагаю, что должен использовать что-то как "Кв. - добираются" или "способный кэш" - но не пробуя это ни один из него не поддерживает мои данные опции. Вместо этого я добираюсь:
E: Command line option --installed is not understood in combination with the other options
После удаления "-установленная" часть, я получаю это:
E: Invalid operation list
Который является вариантом инструмента командной строки Кв., которая должна использоваться для того, чтобы сделать этот запрос стабильным способом? (Я определенно надеюсь на вариант инструментов что проблема привычки те, которые "ПРЕДУПРЕЖДАЮТ": строка.)
Способность поиск пакета с настраивают форматирование.
При поиске пакетов со способностью, критерии поиска используются для ограничения поиска, в этом случае 'установленные' пакеты. Шаблон затем выполняется с помощью нечувствительного к регистру регулярные выражения (путем добавления '^' привязки '$' к шаблону, точное имя пакета может быть подобрано). С -F
опция специализированная строка выходного формата может быть сформирована при помощи [1 112] %escapes.
Пример:
$ aptitude search '?narrow(?installed, "^grep$")' -F '%p (%v)' -q=2 --disable-columns
grep (3.3-1)
(Пример сценария с короткими критериями поиска)
#!/bin/bash
read -r package_name package_version < <(aptitude search '~i^grep ссылка Критерия поиска:
? узкий () - Избранные пакеты, для которых единственная версия соответствует и фильтру и шаблону.
? установленный - Выбор установил пакеты.
заполнители Escape:
%p - Производит название пакета.
%v - Производит в настоящее время установленную версию пакета.
опции Aptitude :
-F - Указывают формат, который должен использоваться для отображения вывода.
-q - Подавляют все индикаторы хода выполнения. Предоставленный многократно делает вывод более тихим.
- запрещать-столбцы - Эта опция заставляет поиск производить их результаты без любого специального форматирования.
Получают выборы пакета с [1 113] dpkg.
$ dpkg --get-selections grep
grep install
или
$ dpkg -l grep
ii grep 3.3-1 amd64 GNU grep, egrep and fgrep
(Пример сценария)
#!/bin/bash
if [[ $(dpkg --get-selections grep 2>&-) =~ .+[[:space:]]+install$ ]]; then
echo Installed
fi
или
#!/bin/bash
if (( $(dpkg -l grep 2>&- | grep -c ^ii) == 1 )); then
echo Installed
fi
Получают состояние пакета с [1 114] dpkg-запрос .
$ dpkg-query --showformat='${Package}\t${Version} (${db:Status-Status})\n' --show grep
grep 3.3-1 (installed)
(Пример сценария)
#!/bin/bash
if [[ $(dpkg-query --showformat='${db:Status-Status}' --show grep 2>&-) == 'installed' ]]; then
echo Installed
fi
-F '%p %v' -q=2 --disable-columns 2>&-)
echo $package_name
echo $package_version
exit 0
ссылка Критерия поиска:
? узкий () - Избранные пакеты, для которых единственная версия соответствует и фильтру и шаблону.
? установленный - Выбор установил пакеты.
заполнители Escape:
%p - Производит название пакета.
%v - Производит в настоящее время установленную версию пакета.
опции Aptitude :
-F - Указывают формат, который должен использоваться для отображения вывода.
-q - Подавляют все индикаторы хода выполнения. Предоставленный многократно делает вывод более тихим.
- запрещать-столбцы - Эта опция заставляет поиск производить их результаты без любого специального форматирования.
Получают выборы пакета с [1 113] dpkg.
$ dpkg --get-selections grep
grep install
или
$ dpkg -l grep
ii grep 3.3-1 amd64 GNU grep, egrep and fgrep
(Пример сценария)
#!/bin/bash
if [[ $(dpkg --get-selections grep 2>&-) =~ .+[[:space:]]+install$ ]]; then
echo Installed
fi
или
#!/bin/bash
if (( $(dpkg -l grep 2>&- | grep -c ^ii) == 1 )); then
echo Installed
fi
Получают состояние пакета с [1 114] dpkg-запрос .
$ dpkg-query --showformat='${Package}\t${Version} (${db:Status-Status})\n' --show grep
grep 3.3-1 (installed)
(Пример сценария)
#!/bin/bash
if [[ $(dpkg-query --showformat='${db:Status-Status}' --show grep 2>&-) == 'installed' ]]; then
echo Installed
fi