Как программно проверить наличие программы? - PullRequest
2 голосов
/ 05 октября 2011

Допустим, я пишу что-то, что зависит от внешних программ, например svn.Как автоматически проверить их существование, чтобы я мог распечатать полезное сообщение об ошибке, когда они отсутствуют?Итерация по PATH возможна, но вряд ли изящна и эффективна.Есть ли более чистые решения?

Я видел такое поведение в скрипте начальной загрузки, хотя не могу вспомнить где.Это выглядело примерно так:

checking for gcc... yes

Ответы [ 2 ]

2 голосов
/ 05 октября 2011

Если вы используете bash, вы можете использовать встроенную команду type:

$ type -f svn
svn is /usr/bin/svn

Если вы хотите использовать его в скрипте:

$ type -f svn &>/dev/null; echo $?
0
$ type -f svn_doesnt_exist &>/dev/null; echo $?
1
0 голосов
/ 05 октября 2011

Попробуйте на самом деле это назвать.

Наиболее разумно вызывать его с -V или любой другой опцией, которая заставляет программу сообщать свою версию; Большую часть времени вы хотите, чтобы программа была как минимум такой-то и такой-то версией.

Если ваша программа является сценарием оболочки, which тоже ваш друг.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...