我已经创建了一个非常简单的bash脚本,它运行几个命令。其中一个命令需要用户在运行时输入。例如,它会问用户“你想不想等等等等?",我想简单地发送一个回车键到这个,这样脚本将完全自动化。我将不必等待输入或任何在运行时,它足以只是发送按键和输入缓冲区将处理其余的。
ycggw6v21#
echo -ne '\n' | <yourfinecommandhere>
或者利用echo生成的隐式换行符(感谢Marcin)
echo | <yourfinecommandhere>
34gzjxbg2#
您可以只使用yes。
# yes "" | someCommand
brqmpdu13#
您可能会发现yes命令很有用。请参阅man yes
yes
man yes
gojuced74#
下面是使用expect的示例用法:
expect
# !/usr/bin/expect set timeout 360 spawn my_command # Replace with your command. expect "Do you want to continue?" { send "\r" }
检查:man expect以获取更多信息。
man expect
de90aj5v5#
您可以使用expect(man expect 附带示例)。
pftdvrlh6#
我知道这是旧的,但希望,有人会发现这有帮助。如果你有多个用户输入需要处理,你可以使用process substitution,并使用echo作为cat的一个“文件”,处理第一个输入所需的任何东西,如下所示:
# cat ignores stdin if it has a file to look at cat <(echo "selection here") | command
然后您可以通过使用yes命令处理后续的输入,该命令的答案为:
cat <(echo "selection here") | yes 'y' | command
6条答案
按热度按时间ycggw6v21#
或者利用echo生成的隐式换行符(感谢Marcin)
34gzjxbg2#
您可以只使用yes。
brqmpdu13#
您可能会发现
yes
命令很有用。请参阅
man yes
gojuced74#
下面是使用
expect
的示例用法:检查:
man expect
以获取更多信息。de90aj5v5#
您可以使用expect(man expect 附带示例)。
pftdvrlh6#
我知道这是旧的,但希望,有人会发现这有帮助。
如果你有多个用户输入需要处理,你可以使用process substitution,并使用echo作为cat的一个“文件”,处理第一个输入所需的任何东西,如下所示:
然后您可以通过使用yes命令处理后续的输入,该命令的答案为: