Я собираюсь написать сценарий оболочки, чтобы определить, установлено ли в системе несколько пакетов homebrew. Есть ли способ использовать для этого команду brew?
Я пробовал использовать код выхода brew install <formula> --dry-run
. Но это создает пакет, если он отсутствует.
brew --cellar "$formula" >/dev/null 2>&1
--cellar formula: Display the location in the cellar where formula would be installed, without any sort of versioned directory as the last path.
brew man-страницу ; хотел бы дать это в качестве ответаif [ ! -x "$(command -v PKG_EXEC)" ]; then # package not installed fi
Ответы:
Ты можешь использовать
для вывода установленных версий соответствующей формулы. Если формула не установлена, вывод будет пустым.
При использовании последних версий homebrew, с которыми вы можете
brew update
работать, вы можете просто запустить это (спасибо Slaven):Тем не менее, вероятно, было бы неплохо проверить наличие инструмента вообще, а не просто проверять соответствующий пакет homebrew (например, путем поиска исполняемого файла в
$PATH
). На практике люди склонны устанавливать инструменты довольно большим количеством способов, и homebrew является лишь одним из них.источник
if macchanger --help > /dev/null; then
, будет ли это проверять,macchanger
установлено ли?macchanger
находится в текущей оболочке$PATH
. В случае сбоя он либо недоступен в PATH, либо не установлен.which -s
. Параметр-s
(без вывода сообщений) задокументирован как «-s Нет вывода, просто вернуть 0, если какой-либо из исполняемых файлов найден, или 1, если ничего не найдено». Правильное использование - это что-то вродеwhich macchanger || echo "macchanger not on PATH"
Что о?
источник
python@3
которая установлена (и указана) какpython3
.источник
Самые простые двухстрочные: Шаг первый, убедитесь, что он установлен
Это распечатает реальный путь к текущему каталогу, если нет, то он установит его. И это не сработает, даже если реальный путь не найден.
Шаг второй, вызовите его в своем реальном коде:
источник