gpt4 book ai didi

php - 在不显示 shell 窗口的情况下执行 bash 脚本

转载 作者:可可西里 更新时间:2023-11-01 10:44:01 24 4
gpt4 key购买 nike

您好,我正在尝试通过 PHP 执行 bash 脚本,当脚本运行时,shell 界面出现几秒钟然后消失。

然而,我需要的是一种在完全不显示 shell 的情况下运行 bash 脚本的方法。在如下所示的 php 网站上找到了 execInBackground 函数,但它对我不起作用。执行此操作的最佳方法是什么?

function convert($tmpName, $fileName, $fileSize, $fileType){
$old_path = getcwd();
chdir('C:\xampp\htdocs\p-master\tools');
execInBackground("test.sh");
chdir($old_path);
}

function execInBackground($cmd) {
if (substr(php_uname(), 0, 7) == "Windows"){
pclose(popen("start /B ". $cmd, "r"));
}
else {
exec($cmd . " > /dev/null &");
}
}

编辑:出现的shell窗口是Git Bash

编辑 2:仍然有这个问题,尝试了所有建议的解决方案并尝试了网络上的不同解决方案,但没有成功,有人可以帮助解决这个问题吗?

最佳答案

您可以使用 PHP 内置的 shell_exec 函数。它将通过 shell 执行命令,并在发生错误时以字符串或空值的形式返回完整的输出。

您还需要将正在执行的脚本从 test.sh 文件中取出,并将其放入 PHP 函数中,并将其作为参数传递给 shell_exec 函数.窗口一直打开的原因是你在这里所做的实际上与双击计算机上的文件打开它一样,你实际上是在告诉命令行在命令行窗口中打开这个文件然后运行其中的脚本。

语法

string shell_exec(string $cmd);

来源

http://php.net/manual/en/function.shell-exec.php

关于php - 在不显示 shell 窗口的情况下执行 bash 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35203333/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com