首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在shell脚本中提示用户输入时,如何捕获并执行操作?

在shell脚本中提示用户输入时,如何捕获并执行操作?
EN

Stack Overflow用户
提问于 2016-08-09 16:01:26
回答 1查看 50关注 0票数 0

我有一个工作的shell脚本,它调用另一个shell脚本在服务器上运行的一些进程上执行一些操作。这个内部shell脚本有时会提示输入用户and和密码。如果发生这种情况,我希望得到这个内部脚本,并希望对该进程执行kill -9。有没有人能建议一下如何做到这一点?

还有一点,无论我的shell脚本做什么,我都会将其记录在日志文件中,所以我假设当脚本提示输入用户is和密码时,这些信息也会记录在log.So中,这应该是在日志文件中检查这一点的一种方法。

我在Linux操作系统上工作。请查收并提出建议。

EN

回答 1

Stack Overflow用户

发布于 2016-08-09 16:20:54

你可以在超时后杀死你的子脚本:

代码语言:javascript
复制
( cmdpid=$BASHPID; (sleep 10; kill -9 $cmdpid) & exec my-child-script )

在这种情况下,您将在给定的时间段(10秒)后杀死my-child-script

你不能(很容易)检测到你的脚本是否在等待输入(在标准输入上),唯一有效的方法是使用strace/ptrace,但它太复杂了,我不认为这样做真的值得。到目前为止,基于超时的方法似乎更加自然。

您可以在此问题中找到此方法的一些其他示例:

关于日志文件:

您可以使用grep/sed从日志文件中提取数据。为了使答案更具体,我们需要一些额外的数据。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38845195

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档