PHP,和了shell_exec输入(PHP, shell_exec and an input)

2019-09-20 12:37发布

有没有可能了shell_exec执行给定的命令,其中初始命令将要求对动态输入,然后接着是是基于输入自己的命令。

我已经研究了的答案小时,我似乎无法找到我要找的。

我有一个要求,它类似于下面的示例和任何帮助的想法,因为将不胜感激

$x = shell_exec("read -p 'Enter your name : ' x; echo 'Your name is' : $x");

呼应X输出:

你的名字是

你可以看到我运行多个命令,但我不知道我能为输入字符串命令里面插入。

注:我试图做

$x = shell_exec("echo 'Foo' | read -p 'Enter your name : ' x; echo 'Your name is :' $x");

echo $x;

产量:

你的名字是 :

我期待像

你的名字是:富

显然,什么是错的。

Answer 1:

我遇到同样的问题,因为你有read其他时间。 如果执行终端在同一行,结果是一样的,所以这不是一个PHP的问题,而是一个shell的问题:

$ echo 'Foo' | read -p 'Enter your name : ' x; echo "Your name is : $x"
Your name is : 

如果您缠绕read一个内while .. do .. done ,那么这一切完美的作品:

$ echo 'Foo' | while read -p 'Enter your name : ' x; do echo "Your name is : $x" ; done
Your name is : Foo

我不知道为什么会这样,虽然。

你也可以尝试使用proc_open相似,你会得到的输入/输出流的更多控制,但我不知道他们是否会与工作read问题。



文章来源: PHP, shell_exec and an input