【问题标题】:How to check whether a command can be executed?如何检查命令是否可以执行?
【发布时间】:2010-07-09 04:28:51
【问题描述】:

我有一个脚本,它将向用户显示一些压缩选项(gzip、zip 和 bzip)。由于这意味着要在 Linux 和 Windows 上运行,并且 Zlib 库将不可用,我必须使用 Unix 命令压缩任何文件。当然,如果脚本在 Windows 上运行,它可能没有任何好的命令行压缩工具,因此应用程序不应向用户显示任何选择。

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

【问题讨论】:

标签: php command-line compression


【解决方案1】:

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

【讨论】:

【解决方案2】:

您可以只为 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 可能会更容易。

【讨论】:

    【解决方案3】:

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

    如果你看手册...

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

    上面写着“PHP 4.3.0 提供了对 Windows 上 zlib 的内置支持。”

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

    www.wlscripting.com/tutorial/47

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-03-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-31
      • 1970-01-01
      • 2011-09-07
      • 1970-01-01
      相关资源
      最近更新 更多