如何在shell脚本执行期间处理用户提示/用户干预

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在shell脚本执行期间处理用户提示/用户干预相关的知识,希望对你有一定的参考价值。

考虑shell脚本要求用户输入继续或不[yY / nN],另一个脚本调用所有这些脚本。 我不想手动给YY输入。 注意:用户输入不是脚本的参数,它在脚本执行期间随时发生。 考虑3个shell脚本即:a.sh, b.sh, c.sh。 执行时,脚本会提示:

"You want to Proceed[Y/y/N/n]?"

现在,Wrapper.sh调用a.sh, b.sh, c.sh,并在这些脚本提示时提供Y / y或N / n输入。 我无法将论证作为a.sh“Y”传递 [ps:a.sh b.sh c.sh不可执行且不可编辑] 无法在RHEL上安装任何第三方插件,因此只需要使用默认的插件/命令。

答案

我自己没有用过这个,但看看'期待'。这正是它的用途。祝好运!

另一答案

您可以尝试使用expect工具自动将输入提供给交互式程序。尝试从这样的事情开始:

#!/usr/bin/expect

set timeout 10

spawn "PATH_TO/a.sh"
expect "You want to Proceed" 
send "y
"

interact

以上是关于如何在shell脚本执行期间处理用户提示/用户干预的主要内容,如果未能解决你的问题,请参考以下文章

shell脚本基础1 概述及变量

shell简单总结--符号

shell简单总结--符号

sql脚本期间的提示

UNIX 什么是 Shell 脚本

shell脚本练习实例详解