1

我有一个在运行时需要输入的 shell 脚本。是否可以在 exec() 期间将输入回显到 shell 脚本中?

普通 shell 中的 IE:$ ./script.sh

输入:你最喜欢的颜色:[输入你的答案]红色

输出:你最喜欢的颜色是红色。

4

1 回答 1

3

我不确定你到底要问哪一方,但无论如何我都会回答。

在 PHP 中,您可以从 shell 读取用户输入。它可以使用readline()函数或简单地使用流来完成。根据您使用的 PHP 版本和环境,它可以是 php://input 或 php://stdin。您可以简单地对它们进行 fopen() 并照常阅读。

如果要与正在调用的 shell 脚本进行交互,则需要使用proc_open()而不是 exec。这有点麻烦,但没有办法解决。该函数将为您提供输入、输出和错误的单独流,您可以根据需要读取它们以完成您的任务。

于 2012-07-12T20:56:09.330 回答