Простой вопрос: какой канонический способ тестирования в bash есть ли yum или apt-get? Я пишу сценарий, который будет запускаться на клиентских машинах и установить унисон, а затем создать для него работу cron ...тест bash для yum или apt based linux
2
A
ответ
7
С скриптом bash (или sh, zsh, ksh) вы можете использовать встроенный command -v yum
и command -v apt-get
.
(да, команда называется командой)
Нулевой вывод означает, что его нет, иначе вы получите путь к командам.
Затем вы можете использовать тестовую инструкцию для проверки того, был ли результат пустым или нет.
[ -n "$(command -v yum)" ]
[ -n "$(command -v apt-get)" ]
Примечания: обратная сторона @ Ansgar-Wiechers Предложенной which
подавляет поток ошибок для если «ня» нет:
[ -n "$(which yum 2>/dev/null)" ]
Перевернутой которого, является не встроенная оболочка.
1
я бы, вероятно, использовать which
:
[ -n "$(which apt-get)" ]
[ -n "$(which yum)" ]
0
command -v apt-get &>/dev/null
с '-V' вариант, вы можете также просто проверить состояние выхода:' Команда -v ням>/DEV/нуль && эхо " yum found "' – chepner
Или еще лучше: 'PKG_MANAGER = $ (команда -v yum || command -v apt-get) || echo "Ни yum, ни apt-get found" – chepner