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,然后接受用户输入,但这只适用于某些情况/用法,例如,它不会逐个字符地向程序报告 如果你真的需要这样的东西,那么你可以考虑使用这个程序,因为它是为这个而设计的