gpt4 book ai didi

linux - 如何在提示用户在 shell 脚本中输入时捕获并采取行动?

转载 作者:太空宇宙 更新时间:2023-11-04 12:45:28 25 4
gpt4 key购买 nike

我有一个工作的 shell 脚本,它调用另一个 shell 脚本来对服务器上运行的某些进程执行一些操作。这个内部 shell 脚本有时会提示输入用户 ID 和密码。如果发生这种情况,我想输出这个内部脚本并想对该进程执行 kill -9。谁能建议如何实现这一目标?

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

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

最佳答案

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

( cmdpid=$BASHPID; (sleep 10; kill -9 $cmdpid) & exec my-child-script )

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

你不能(轻易地)检测你的脚本是否正在等待输入(在标准输入上),唯一可行的方法是使用 strace/ptrace,但它太复杂了我认为这真的不值得。基于超时的方法似乎更为自然。

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

关于日志文件:

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

关于linux - 如何在提示用户在 shell 脚本中输入时捕获并采取行动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38845195/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com