使用PHP执行bash脚本和输入命令

保罗·马克

我正在尝试使用PHP执行bash脚本,但是问题是该脚本需要在执行过程中输入一些命令和信息。

这就是我正在使用的

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

该脚本执行正常,但是我无法在脚本上输入任何选项。

梅林魔术师

shell_exec()和exec()无法运行交互式脚本。为此,您需要一个真正的外壳。这是一个为您提供真正的Bash Shell的项目:https : //github.com/merlinthemagic/MTS

//if the script requires root access, change the second argument to "true".
$shell    = \MTS\Factories::getDevices()->getLocalHost()->getShell('bash', false);

//What string do you expect to show in the terminal just before the first input? Lets say your script simply deletes a file (/tmp/aFile.txt) using "rm". In that case the example would look like this: 

//this command will trigger your script and return once the shell displays "rm: remove regular file"

$shell->exeCmd("/my/path/script.sh", "rm: remove regular file");

//to delete we have to press "y", because the delete command returns to the shell prompt after pressing "y", there is no need for a delimiter.  

$shell->exeCmd("y");

//done

我确信脚本的返回要复杂得多,但是上面的示例为您提供了一个如何与shell交互的模型。

我还要提到,您可能会考虑不使用bash脚本执行一系列事件,而是使用exeCmd()方法一个接一个地发出命令。这样,您可以处理返回并将所有错误逻辑保留在PHP中,而不必在PHP和BASH之间进行拆分。

阅读文档,它将对您有所帮助。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用PHP执行bash脚本和输入命令

来自分类Dev

在执行的命令中使用BASH脚本变量

来自分类Dev

执行bash脚本中使用的命令

来自分类Dev

如何使用bash脚本中的Expect和send命令执行sudo命令?

来自分类Dev

使用sudo执行命令并使用sudo执行Bash脚本

来自分类Dev

通过php和bash执行服务命令

来自分类Dev

是否有一个脚本命令可以使用bash脚本从php文件执行特定的php方法

来自分类Dev

Bash脚本生成和执行命令

来自分类Dev

Bash脚本执行多个命令

来自分类Dev

从bash脚本执行复杂的命令

来自分类Dev

从Bash脚本执行PHP脚本

来自分类Dev

如何在bash脚本中使用参数执行SQL命令

来自分类Dev

在bash shell脚本中使用反引号执行命令

来自分类Dev

如何使用 bash 脚本在远程主机上执行命令

来自分类Dev

使用文件输入运行并行命令的Bash脚本

来自分类Dev

需要简单的脚本/循环/命令来输入命令,在文本文件中执行和输出

来自分类Dev

需要简单的脚本/循环/命令来输入命令,在文本文件中执行和输出

来自分类Dev

如何在以 bash 脚本启动的 Ubuntu 中使用 bash 脚本执行命令?

来自分类Dev

通过写入其父脚本进程的标准输入,在提升的bash进程中执行命令

来自分类Dev

无法从PHP执行Bash脚本

来自分类Dev

在脚本和别名中使用bash的bang命令(例如“ !!”)?

来自分类Dev

在脚本和别名中使用bash的bang命令(例如“ !!”)?

来自分类Dev

curl 命令使用 bash 脚本 grep 输出和验证

来自分类Dev

如何使用bash数组存储和执行多个命令

来自分类Dev

使用bash重定向和输入变量编写脚本

来自分类Dev

Bash 脚本和可执行脚本

来自分类Dev

无法在bash脚本中执行shell命令

来自分类Dev

如何从bash脚本执行git命令?

来自分类Dev

bash脚本在ssh之后执行命令

Related 相关文章

  1. 1

    使用PHP执行bash脚本和输入命令

  2. 2

    在执行的命令中使用BASH脚本变量

  3. 3

    执行bash脚本中使用的命令

  4. 4

    如何使用bash脚本中的Expect和send命令执行sudo命令?

  5. 5

    使用sudo执行命令并使用sudo执行Bash脚本

  6. 6

    通过php和bash执行服务命令

  7. 7

    是否有一个脚本命令可以使用bash脚本从php文件执行特定的php方法

  8. 8

    Bash脚本生成和执行命令

  9. 9

    Bash脚本执行多个命令

  10. 10

    从bash脚本执行复杂的命令

  11. 11

    从Bash脚本执行PHP脚本

  12. 12

    如何在bash脚本中使用参数执行SQL命令

  13. 13

    在bash shell脚本中使用反引号执行命令

  14. 14

    如何使用 bash 脚本在远程主机上执行命令

  15. 15

    使用文件输入运行并行命令的Bash脚本

  16. 16

    需要简单的脚本/循环/命令来输入命令,在文本文件中执行和输出

  17. 17

    需要简单的脚本/循环/命令来输入命令,在文本文件中执行和输出

  18. 18

    如何在以 bash 脚本启动的 Ubuntu 中使用 bash 脚本执行命令?

  19. 19

    通过写入其父脚本进程的标准输入,在提升的bash进程中执行命令

  20. 20

    无法从PHP执行Bash脚本

  21. 21

    在脚本和别名中使用bash的bang命令(例如“ !!”)?

  22. 22

    在脚本和别名中使用bash的bang命令(例如“ !!”)?

  23. 23

    curl 命令使用 bash 脚本 grep 输出和验证

  24. 24

    如何使用bash数组存储和执行多个命令

  25. 25

    使用bash重定向和输入变量编写脚本

  26. 26

    Bash 脚本和可执行脚本

  27. 27

    无法在bash脚本中执行shell命令

  28. 28

    如何从bash脚本执行git命令?

  29. 29

    bash脚本在ssh之后执行命令

热门标签

归档