Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 传递答案时出现无限循环问题_Linux_Bash_Shell_Unix - Fatal编程技术网

Linux 传递答案时出现无限循环问题

Linux 传递答案时出现无限循环问题,linux,bash,shell,unix,Linux,Bash,Shell,Unix,我只想把第一个答案传递给一个函数 echo "y" | install 让用户选择回答下一个问题,但当我这样做时,我会得到一个无限循环。使用管道时,外壳会发生变化,因此接收程序的标准输入是管道,而不是其他。您不能将来自管道的输入与来自shell的非管道输入混合,这根本不可能。当使用管道或重定向时,要么全有,要么全无 关于安装程序,您认为是一个无限循环的原因可能是它试图从标准输入(即管道)中读取数据,但是由于没有更多的数据可以从管道中读取,因此它只会等待更多的输入到达,这不会发生。Joachim

我只想把第一个答案传递给一个函数

echo "y" | install

让用户选择回答下一个问题,但当我这样做时,我会得到一个无限循环。

使用管道时,外壳会发生变化,因此接收程序的标准输入是管道,而不是其他。您不能将来自管道的输入与来自shell的非管道输入混合,这根本不可能。当使用管道或重定向时,要么全有,要么全无


关于安装程序,您认为是一个无限循环的原因可能是它试图从标准输入(即管道)中读取数据,但是由于没有更多的数据可以从管道中读取,因此它只会等待更多的输入到达,这不会发生。

Joachim Pileborg的答案是完全正确的,但是对于某些用法,您可以使用类似{echo y;cat}| install的东西发送前导y,然后接受用户输入,但这只适用于某些情况/用法,例如,它不会逐个字符地向程序报告

如果你真的需要这样的东西,那么你可以考虑使用这个程序,因为它是为这个而设计的