2013-05-16 4 views
2

Простой вопрос: какой канонический способ тестирования в bash есть ли yum или apt-get? Я пишу сценарий, который будет запускаться на клиентских машинах и установить унисон, а затем создать для него работу cron ...тест bash для yum или apt based linux

ответ

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)" ]

Перевернутой которого, является не встроенная оболочка.

+0

с '-V' вариант, вы можете также просто проверить состояние выхода:' Команда -v ням>/DEV/нуль && эхо " yum found "' – chepner

+0

Или еще лучше: 'PKG_MANAGER = $ (команда -v yum || command -v apt-get) || echo "Ни yum, ни apt-get found" – chepner

1

я бы, вероятно, использовать which:

[ -n "$(which apt-get)" ] 
[ -n "$(which yum)" ]