Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/26.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 - Fatal编程技术网

如何随linux命令传递多个键盘输入

如何随linux命令传递多个键盘输入,linux,bash,Linux,Bash,我运行一个linux命令,该命令有时要求用户输入(按y或n) 之后,对于相同的命令,我需要传递(是/否) 我总是想回答y,然后是,我怎么能自动传递这个值 对于一个论点,我知道我们可以使用 回声y |指令 但是,对于多个输入,我不知道如何 在通过y之后,我也应该能够给出是 有办法吗?使用yes实用程序 如果始终希望传递相同的值,则可以使用“是”命令。例如: yes | ./script.sh 使用Expect、变量或配置文件 如果你需要更复杂的东西,那么yes通常不能直接做你想做的事情。相反,您

我运行一个linux命令,该命令有时要求用户输入(按y或n)

之后,对于相同的命令,我需要传递(是/否)

我总是想回答y,然后是,我怎么能自动传递这个值

对于一个论点,我知道我们可以使用 回声y |指令

但是,对于多个输入,我不知道如何

在通过y之后,我也应该能够给出是 有办法吗?

使用yes实用程序 如果始终希望传递相同的值,则可以使用“是”命令。例如:

yes | ./script.sh
使用Expect、变量或配置文件 如果你需要更复杂的东西,那么yes通常不能直接做你想做的事情。相反,您应该使用expect来编写复杂的交互脚本,或者重写shell脚本以使用变量或配置文件来传递参数。

使用yes实用程序 如果始终希望传递相同的值,则可以使用“是”命令。例如:

yes | ./script.sh
使用Expect、变量或配置文件
如果你需要更复杂的东西,那么yes通常不能直接做你想做的事情。相反,您应该使用expect来编写复杂的交互脚本,或者重写shell脚本以使用变量或配置文件来传递参数。

Pipes?例如,
echo“y yes”|/您的_程序
您可以尝试
yes
命令:
yes |/您的_程序
。这里有更多详细信息:@JoachimPileborg,可能有效,也可能无效,这取决于脚本或程序处理stdin的方式。例如,您不能通过管道以这种方式编写SSH或FTP会话的脚本。@JoachimPileborg@MaddineniAbhilash大多数脚本都会逐行读取stdin,因为
echo“y yes”|/您的_程序
无法工作,您必须这样做:
echo-e“y\nyes”|/您的_程序
(echo“y”;echo“yes”)|/您的_程序
(假设您的脚本只需要两个输入,否则您必须为每个额外的预期输入添加一个额外的
echo
。。或者如果您要执行一些非常复杂的自动交互管道,请使用expect()?例如
echo“y yes”|/您的_程序
您可以尝试
yes
命令:
yes |/您的_程序
。此处的更多详细信息:@JoachimPileborg可能有效,也可能无效,具体取决于脚本或程序处理stdin的方式。例如,您不能通过管道以这种方式编写SSH或FTP会话的脚本。@JoachimPileborg@maddineabhilash大多数脚本都会出错从stdin逐行读取,因为
echo“y yes”|/你的_程序
无法工作,你必须这样做:
echo-e“y\nyes”|/你的_程序
(echo“y”;echo“yes”)|/你的_程序
(假设您的脚本只需要两个输入,否则您必须为每个额外的预期输入添加一个额外的
echo
,或者如果您要执行一些非常复杂的自动交互,请使用expect()