当前位置: 首页 > 面试题库 >

从PHP运行Bash命令

司寇祖鹤
2023-03-14
问题内容

我有一个bash脚本,可以通过命令行像这样运行:

./script.sh var1 var2

我在调用某个php文件后尝试执行上述命令。

我现在所拥有的是:

$output = shell_exec("./script.sh var1 var2");
echo "<pre>$output</pre>";

但这是行不通的。我尝试过使用execsystem太,但剧本从来没有得到执行。

但是,当我尝试运行shell_exec("ls");它时,它确实起作用,并且$output是所有文件的列表。

我不确定这是由于我使用的VPS的限制还是问题出在其他地方?


问题答案:

您可能需要在调用脚本之前将chdir更改到正确的目录。这样,您可以在调用shell命令之前确保脚本位于哪个目录中。

$old_path = getcwd();
chdir('/my/path/');
$output = shell_exec('./script.sh var1 var2');
chdir($old_path);


 类似资料:
  • 问题内容: 我在txt文件中有一些命令,我​​需要逐行执行所有命令。我该怎么办? 问题答案: 只要做: 如果别名只是运行 无需担心文件扩展名或执行权限。

  • 我构建了一个应用程序,我想为这个应用程序编写一个用nodejs编写的安装程序。安装程序应该做:-更新操作系统-更改ip/主机名-安装nginx、nodejs、节点附加模块(pg、pm2等),postgresql-从git hub下载应用程序-为配置文件制作控制器-使用pm2运行应用程序 我在internet上搜索,发现了来自节点的child_进程,我试图用它运行bash命令,但在“apt get

  • 无法从Git bash运行以下命令。我在错误以下; Git版本:Git版本2.28.0.Windows.1操作系统:Windows10

  • 问题内容: 我有一个非常简单的问题。我是Mac的新手,我正试图将Java项目移到新Mac上。该项目有一个Gradlew文件,我认为我可以从命令行运行以在任何计算机上构建和运行。当我从命令行(在gradlew文件的位置)执行gradlew时,它说未找到gradlew。我是否缺少有关如何从bash shell运行命令的内容? 问题答案: 您的gradlew目录未包含在PATH中,因此您必须指定grad

  • 基本上,我在gitbash命令行中键入,然后返回一个空行,好像命令行正在思考。。。 我做了大量的研究,但似乎无法通过在命令行中键入python在GitBash上运行python。 我看到的问题是:Python在git bash的命令行中不起作用,有人建议键入: 进入命令行,它工作了!但是,我不想一直在命令行中输入整个命令。

  • 当我试图登录本地postgres数据库并提交查询时,我的BASH脚本中的psql命令遇到了问题。我以以下方式使用该命令: 但是,我收到以下错误消息。 PSQL: FATAL:用户"postgres"的身份验证失败 在我将以下更改附加到 /var/lib/pgsql/data/pg_hba.conf后,从命令行运行非常好: 本地所有信任 托管所有127.0.0.1/32信任 另外,能否验证一下这一点