首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在终端中运行/停止命令而不受人为干扰?

在终端中运行/停止命令而不受人为干扰?
EN

Unix & Linux用户
提问于 2017-03-26 14:40:35
回答 1查看 2.2K关注 0票数 0

作为一个初学Linux的用户,我面临着这个小问题。我在终端中有一个命令,如图中所示:

当我运行这个命令时,它会生成一些行,但问题是,我需要使这个命令在5秒后停止,而不需要人工实际按ctrl + c

我需要用什么方法让计算机完成这个过程,而不需要实际按ctrl + c,因为我需要重复这个过程超过1000次。

  • 运行命令
  • 停止命令
    • (暂停xx秒)

  • 运行命令
  • 停止命令
    • (暂停xx秒)

  • 等。

我是否需要安装一些特殊的程序,还是可以使用bash脚本来完成?

EN

回答 1

Unix & Linux用户

发布于 2017-03-26 14:59:52

假设timeout(1)是可用的,则shell命令

代码语言:javascript
复制
timeout 5s whateverthatcommandis; sleep 99

应该在5秒后关闭程序(假设程序行为良好.)然后sleep,不管你的xx秒是什么。然后,可以根据需要将这些命令包装在某种循环中;假设seq是可用的(在BSD上,您可以使用jot),一个典型的循环可能按照以下方式运行:

代码语言:javascript
复制
for n in `seq 1 1000`; do timeout 5s whateverthatcommandis; sleep 99; done

顺便说一句,shell循环在ZSH下可能会变得更容易读懂:

代码语言:javascript
复制
repeat 1000 { timeout 5s whateverthatcommandis; sleep 99 }
票数 2
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/353944

复制
相关文章

相似问题

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