如何检查命令是否可以执行?

时间:2010-07-09 04:28:52

标签: php command-line compression

我有一个脚本会向用户显示一些压缩选项(gzip,zip和bzip)。因为这是为了在Linux和Linux上运行。 Windows和Zlib库将不可用我必须使用Unix命令压缩任何文件。当然,如果脚本在Windows上运行,它可能没有任何漂亮的命令行压缩工具,因此应用程序不应该向用户显示任何选择。

所以,我想知道的是如何检查命令行工具是否存在。我可以检查可执行文件是否存在,但它根本不可靠(例如,在我的桌面上我使用Gentoo Linux并且zip命令存在于/usr/bin;另一方面,我的服务器它位于/bin)。

3 个答案:

答案 0 :(得分:3)

使用which命令。例如,使用which zip查找zip所在的位置以及是否存在。它是Linux / Mac的标准配置,也可用for Windows

答案 1 :(得分:0)

您可以为Windows编译zlib并将程序链接到它...否则您将不得不将几个程序名称硬编码到您的应用程序中,并手动解析用户的PATH变量以查找它们的安装位置。

或者,如果你想使用一个库,你可以使用glib中的这个函数: http://www.gtk.org/api/2.6/glib/glib-Miscellaneous-Utility-Functions.html#g-find-program-in-path

但是如果你在你的应用程序中使用glib,那么为windows构建zlib可能更容易。

答案 2 :(得分:0)

Zlib可以安装在上述所有操作系统上。

如果你看一下手册......

www.php.net/manual/en/zlib.installation.php

它说“Windows上对zlib的内置支持适用于PHP 4.3.0。”

默认情况下不启用Zlib,您必须在php.ini中手动启用它。要检查是否已启用zlib或任何其他模块,请参阅本教程:

www.wlscripting.com/tutorial/47