您好我试图通过PHP执行bash脚本,当脚本运行的shell界面出现几秒钟,然后消失。
然而,我需要的是一种运行bash脚本而不出现shell的方法。 在下面显示的PHP网站上findexecInBackground函数,但它不适合我。 什么是最好的方法来做到这一点?
function convert($tmpName,$fileName,$fileSize,$fileType){ $old_path = getcwd(); chdir('C:xampphtdocsp-mastertools'); execInBackground("test.sh"); chdir($old_path); } function execInBackground($cmd) { if (substr(PHP_uname(),7) == "Windows"){ pclose(popen("start /B ". $cmd,"r")); } else { exec($cmd . " > /dev/null &"); } }
编辑:出现的shell窗口是Git Bash
编辑2:仍然有这个问题,尝试所有build议的解决scheme,并尝试从networking上的不同的,但没有运气,任何人都可以帮助吗?
使用sed扩展环境variables
将文件和pipe道分组到awk命令
如何在多核上运行使用bash进行pipe理的进程?
shell必须parsingls -Al输出并获取最后一个字段(文件或目录名称)任何解决scheme
Linux / Bash:如何取消引用?
将文本附加到与Sed现有的第一行
您可以使用PHP内置的shell_exec函数。 它将通过shell执行一个命令,并在发生错误时将完整的输出作为字符串或空值返回。
您还需要将正在执行的脚本从test.sh文件中取出,并将其放入PHP函数,并将其作为参数传递给shell_exec函数。 窗口继续打开的原因是你在这里所做的和双击计算机上的文件来打开它是一样的,你正在有效地告诉命令行在命令行窗口中打开这个文件,然后运行其中的脚本。
句法
string shell_exec(string $cmd);
来源
http://PHP.net/manual/en/function.shell-exec.PHP
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。