2016-06-18 186 views
0

我想从使用php的html文件运行一个bash脚本。我已经读过这个问题(how to run a .sh file from php?),并且完全遵循它,但似乎无法使其工作。运行一个bash脚本使用php

我在我的mac上的下载文件夹中有两个文件。这些文件的名称和内容:

hello.sh

#! /bin/bash 
echo hello world 

test.php的

<?php 
echo shell_exec('sh /Users/steve/downloads/hello.sh'); 
?> 

我跑在命令行命令的同时在下载文件夹中:

php test.php 

这导致了一个空白页面被打开在铬中,而我期待得到一个页面的“你好词”在它。

我也想知道如何让我的PHP代码打开一个像html文件一样的chrome窗口。例如,如果我在命令行中输入:

open test.html 

在运行test.html内容的chrome中打开一个新窗口。

感谢您的帮助。

+0

您是否在系统上安装了Apache服务和PHP? –

+0

@AniMenon:他们为什么要这样做? – sjsam

+0

找不出这个问题。但是,你可以尝试'chmod + x hello.sh'和'echo shell_exec('./ hello.sh');'? – sjsam

回答

0

下面是一个如何创建名为“test.php”的.php文件的例子,该文件运行名为“hello.txt”的shell脚本。

这是“test.php”内部的代码。你可以把这段代码放在任何目录下,它应该可以正常工作。

<?php 
echo shell_exec('./hello.sh'); 
?> 

这是“hello.sh”内部的代码。只要它在相同的目录“test.php”中,您可以将此代码放在任何目录中。

#! /bin/bash 
echo hello world 

一旦你取得了这两个文件,进入其目录使用命令行,输入以下命令:

chmod +x hello.sh 
php test.php 

的第一个命令(我认为)让从“hello.sh”访问“test.php的”。你只需要做一次。第二个命令运行test.php并返回“hello world”。

这也可以用于shell脚本以外的程序。例如,你可以编译一个cpp文件到a.out(一个已编译的C++文件的缺省名称),并通过替换echo shell_exec('./ hello.sh')从php文件运行它。用echo shell_exec('./ a.out');