我正在处理我的一个项目。我正在windows机器上使用XAMPP开发该项目。这就是我面临的问题。我需要在服务器上执行shell脚本,并在网页上显示结果。问题是,大多数脚本都按预期运行,但我无法获得以下命令的输出:,
ls, cat, pwd
因为这些命令返回给我一个空白数组。
我找不到确切的问题。
请使用< code>passthru()而不是< code>exec()。
这不是对你的问题的直接回答,但是我觉得有必要指出,可以在PHP中模拟< code>ls 、< code>cat和< code>pwd的功能,所以如果你所做的只是调用这些命令并将结果传回PHP,那么调用它们可能根本没有任何意义。
< code>ls是一个目录列表。PHP提供了一个名为< code>DirectoryIterator的类,只需几行代码就可以完成这项工作:
一个例子:
$iterator = new DirectoryIterator($directory);
foreach ($iterator as $fileinfo) {
if ($fileinfo->isFile()) {
print "File: ".$fileinfo->getFilename();
}
}
< code>pwd获取当前目录。PHP有一个内置函数< code>getcwd(),它只用一行代码就完成了这项工作。
< code>cat将文件(和管道)打印到输出缓冲区。这可能也可以在PHP内部完成。< code>cat有时用于一些相当复杂的命令行内容,您可能希望将它们保存在shell中。但是对于简单的东西(甚至是中等复杂的东西),PHP完全能够胜任。
更多地了解您正在尝试实现的目标会有所帮助,但我相信PHP能够做到听起来像您正在做的事情,而无需使用shell。
希望有帮助。
为什么/我的目标: 我有一个由pi组成的小型网状网络,每天大部分时间都在运行脚本。我想取消停机时间,但是代码有时会在连续循环3-4天后停止工作,(有时长达一周,代码才会出现错误并停止)。 每个节点上运行的脚本用“最后签入”字段更新mySQL数据库。 我希望用Java编写一个小型后台程序,它将在我的服务器上无限期运行,时不时地检查每个站点的“最后签入”,如果它注意到一个节点宕机,远程ssh进入该节点
问题内容: 我有一个需要使用redis命令行界面执行的redis命令的长文本文件: 例如 等等 我似乎找不到一种比一次输入命令更快的方法。有数十万行,所以我不想只将它们全部堆叠到一个DEL命令中,它们也不需要一次全部运行。 问题答案: 以下代码对我在Mac上的Redis 2.4.7有用 满足您的要求吗?或者,您是否正在寻找是否有办法以编程方式更快地做到这一点?
问题内容: 我想知道是否有一种方法可以在Go中运行一定的时间,然后在从通道接收到值后将其杀死。在似乎不支持命令管道。谢谢。 问题答案: 这是我的管道示例,通过OS Std Pipe归档一个调用文件b,您可以对其进行编辑并添加计时器以执行所需的操作。 文件b:
问题内容: 我正在编写一个脚本来自动化Python中的某些命令行命令。目前,我正在打电话: 但是我需要在远程计算机上运行一些命令。手动地,我将使用ssh登录,然后运行命令。我将如何在Python中自动执行此操作?我需要使用(已知)密码登录到远程计算机,所以我不能只使用,我想知道是否应该使用一个模块? 问题答案:
I使用Processbuilder如下所示: 在方法中,我设置要执行的linux命令,如下所示: 我可以从终端执行相同的命令。
我试图使用Java的类来执行包含管道的命令。例如: 然而,我得到了一个错误: 然后: 尽管该命令在命令行中运行得很好,但我无法让执行将其输出重定向到另一个的命令。 有没有办法做到这一点?