2017-07-05 52 views
0

嗨即时通讯工作在一个简单的bash编码我不知道如何做到这一点,这可能很容易为你们请帮助。在X时间运行Bash命令并终止X时间

我有一个简单的程序上file.sh

#!/bin/bash 

./program 

这./program是C程序的编译版本,我使用GCC我尝试在bash脚本用来为一些执行该程序符合秒,然后在x间隔时间后终止并再次重新启动。

我希望你明白了我的观点?

示例:运行file.sh 10秒钟,然后显示./程序C程序的结果,然后在10秒后再次重新启动。

回答

3

答案是,如果我理解正确的sleeptimout组合:

while :; do 
    timout 10s ./program 
    # display some results 
    sleep 10 
done 
+0

谢谢你的工作!在这里做什么样的睡眠10? –

+0

@Noor对于大多数UNIX命令,使用'man'来获取文档。 “男人睡眠”和“男人超时”。有时它不起作用,因为该命令是内置的shell。然后在'man bash','info bash'或网络上的bash文档中查找它。 – slim

+0

你问过,10秒后,程序应该重新开始。所以程序结束后,脚本会休眠10秒。 –

1

您可以使用sleep命令。例如:exec ./program && sleep n其中n是您希望命令进入睡眠状态的时间。如果你想要的话,你可以把它放在sh脚本的一个while循环中,并连续运行它。

,直到您关闭终端持续运行:

while true 
do 
    echo "[CTRL+C] to stop..." 
    timeout 10s ./program 
done 
+0

我该如何使用它在我的bash代码? –

+0

'exec ./program && sleep 10'是否工作?如果我理解你的问题,它应该做的窍门 – al3xkr

+0

当它执行终端立即关闭:exec ./program && sleep 10 –