Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 如何每N秒重复运行bash脚本?_Linux_Bash - Fatal编程技术网

Linux 如何每N秒重复运行bash脚本?

Linux 如何每N秒重复运行bash脚本?,linux,bash,Linux,Bash,我有一个shell脚本,可以打印一些统计信息,比如磁盘信息、内存使用等。但它只在脚本运行和退出后显示一次信息。我可以让这个脚本重复运行(比如htop)或者类似的东西吗?我希望此信息每5-10秒更新一次。对我的评论稍加改进:如果脚本以true退出(例如,当它以退出0结束时),您可以运行 while script; do sleep 10; done 这是重复命令的标准方法,只要命令没有失败。在linux中,您可以使用watch程序重复操作。假设script.sh是可执行的: watch -n 1

我有一个shell脚本,可以打印一些统计信息,比如磁盘信息、内存使用等。但它只在脚本运行和退出后显示一次信息。我可以让这个脚本重复运行(比如
htop
)或者类似的东西吗?我希望此信息每5-10秒更新一次。

对我的评论稍加改进:如果脚本以true退出(例如,当它以
退出0
结束时),您可以运行

while script; do sleep 10; done

这是重复命令的标准方法,只要命令没有失败。

在linux中,您可以使用
watch
程序重复操作。假设
script.sh
是可执行的:

watch -n 10 path/to/script.sh
每10秒运行一次

要使脚本可执行,可以使用
chmod+x script.sh
。别忘了加上shebang

#!/bin/bash
到第一行(假设它是bash脚本)

如果从当前目录运行脚本,则可以执行以下操作:

watch -n 10 ./script.sh

如果每分钟运行一次就足够了,那么可以使用coron来运行脚本。否则,您必须执行一些循环,并像服务一样实际运行脚本。是的,但它每次都会关闭当前tty。我的意思是在不关闭的情况下工作……如何将脚本(或其内容)包装到
while:;写剧本;睡眠10;完成了吗?@Jens,好主意!我试试这个)谢谢!非常接近子集是的,它也工作,但我必须使用“sh”额外
watch-n10sh script.sh
或者您可以添加一个shebang
#/bin/bash
,并使其可执行。请注意,一般来说,如果您的意思是
bash
,请不要使用
sh
,因为它可能是一个不同的shell。我是作为示例编写的,但是如果我使用
watch-n10
而不使用
sh
bash
它不起作用(脚本是否可执行?请尝试
chmod+x脚本
(别忘了添加我上面提到的shebang)。如果脚本在当前目录中,您可能还需要使用
watch-n10./script
这不适用于像ll等bash命令。这一行是高级的,而sleep 1;要回显“Hi”;doneMy变体如下所示:
为true;do
代码在这里…
sleep 10
done
效果很好!@alexkowalski完美!下一步是通过单击箭头下方的复选标记来接受您最喜欢的答案。我有一个python脚本,它提供了名为test.png的输出。是否可以更改n为每个输出(10秒后)命名,如test.png、tes1.png、tes2.png……@user1883491是的;但这是一个完全不同的问题。您必须引入一个变量,例如
i=0
,并在循环中使用
:$(++i))
增加它。这一行程序优于sleep 1;do echo“Hi”;done-在