Как проверить, можно ли выполнить команду? - PullRequest
3 голосов
/ 09 июля 2010

У меня есть скрипт, который покажет пользователю некоторые параметры сжатия (gzip, zip и bzip).Поскольку он предназначен для работы как в Linux, так и в Windows, а библиотека Zlib недоступна, мне нужно сжать любые файлы с помощью команд Unix.Конечно, если скрипт выполняется в Windows, он, вероятно, не будет иметь никаких хороших инструментов сжатия командной строки, и поэтому приложение не должно показывать пользователю никаких вариантов выбора.

Итак, что я хочу знать?Как проверить, существует ли инструмент командной строки.Я мог бы просто проверить, существует ли исполняемый файл, но он совсем не надежен (например, на моем рабочем столе я использую Gentoo Linux, а команда zip живет на /usr/bin; с другой стороны, на моем сервере она живет на/bin).

Ответы [ 3 ]

3 голосов
/ 09 июля 2010

Используйте команду which.Например, используйте which zip, чтобы узнать, где живет zip и существует ли он.Он входит в стандартную комплектацию Linux / Mac и доступен также для Windows .

0 голосов
/ 09 июля 2010

Zlib может быть установлен во всех вышеперечисленных операционных системах.

Если вы посмотрите на руководство ...

www.php.net / ручной / EN / zlib.installation.php

В нем говорится: «Встроенная поддержка zlib в Windows доступна с PHP 4.3.0».

Zlib не включен по умолчанию, вы должны включить его вручную в php.ini. Чтобы проверить, включен ли zlib или любой другой модуль, посмотрите этот учебник:

www.wlscripting.com / учебник / 47

0 голосов
/ 09 июля 2010

Вы можете просто скомпилировать zlib для окон и связать свою программу с ним ... в противном случае вам придется смириться с жестким кодированием нескольких имен программ в вашем приложении и вручную проанализировать переменную PATH пользователя, чтобы найти, где они установлены.

Или, если вы хотите использовать библиотеку, вы можете использовать эту функцию из glib: http://www.gtk.org/api/2.6/glib/glib-Miscellaneous-Utility-Functions.html#g-find-program-in-path

Но если вы используете glib в своем приложении, в этот момент, вероятно, проще просто собрать zlib для Windows.

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