Mar*_*ace 296 linux bash ubuntu
是否有可能在linux命令行中每n秒重复一次命令.
例如,假设我有一个导入运行,我正在做
ls -l
Run Code Online (Sandbox Code Playgroud)
检查文件大小是否增加.我想有一个命令让它自动重复.
Raw*_*ode 532
每5秒观看一次......
watch -n 5 ls -l
如果您希望对变更进行直观确认,请--differences在ls命令之前附加.
根据OSX手册页,还有
- 累积选项使突出显示"粘性",呈现所有已更改位置的运行显示.-t或--no-title选项将关闭显示显示顶部的间隔,命令和当前时间的标题,以及以下空白行.
Linux/Unix手册页可以在这里找到
Ole*_*huk 114
while true; do
sleep 5
ls -l
done
Run Code Online (Sandbox Code Playgroud)
mik*_*ail 92
"观看"不允许在Busybox中使用一秒钟,而"睡眠"则可以.如果这对您很重要,请尝试以下方法:
while true; do ls -l; sleep .5; done
Run Code Online (Sandbox Code Playgroud)
Seb*_*ner 33
sleep已经回来了0.因此,我正在使用:
while sleep 3 ; do ls -l ; done
Run Code Online (Sandbox Code Playgroud)
这比mikhail的解决方案略短.一个小缺点是它在第一次运行目标命令之前就会休眠.
jon*_*nzh 18
如果该命令包含一些特殊字符(如管道和引号),则需要使用引号填充该命令.例如,要重复ls -l | grep "txt",watch命令应该是:
watch -n 5 'ls -l | grep "txt"'
Ran*_*r T 13
我们可以在没有cron的情况下定期运行命令while.
作为命令:
while true ; do command ; sleep 100 ; done &
[ ex: # while true; do echo `date` ; sleep 2 ; done & ]
Run Code Online (Sandbox Code Playgroud)
例:
while true
do echo "Hello World"
sleep 100
done &
Run Code Online (Sandbox Code Playgroud)
不要忘记最后一个,&因为它会把你的循环放在后台.但是你需要使用命令"ps -ef | grep your_script"找到进程id,然后你需要杀死它.所以在运行脚本时添加'&'.
# ./while_check.sh &
Run Code Online (Sandbox Code Playgroud)
这是与脚本相同的循环.创建文件"while_check.sh"并将其放入其中:
#!/bin/bash
while true; do
echo "Hello World" # Substitute this line for whatever command you want.
sleep 100
done
Run Code Online (Sandbox Code Playgroud)
然后键入来运行它 bash ./while_check.sh &
小智 6
如果你想避免"漂移",意味着你希望命令每N秒执行一次,无论命令花了多长时间(假设它花费的时间少于N秒),这里有一些bash会每隔5秒重复一次命令 - 第二准确度(如果无法跟上,将打印出警告):
PERIOD=5
while [ 1 ]
do
let lastup=`date +%s`
# do command
let diff=`date +%s`-$lastup
if [ "$diff" -lt "$PERIOD" ]
then
sleep $(($PERIOD-$diff))
elif [ "$diff" -gt "$PERIOD" ]
then
echo "Command took longer than iteration period of $PERIOD seconds!"
fi
done
Run Code Online (Sandbox Code Playgroud)
它可能仍然漂移一点,因为睡眠只精确到一秒钟.您可以通过创造性地使用date命令来提高此准确性.
如果您想做某事特定次数,您可以随时执行以下操作:
repeat 300 do my first command here && sleep 1.5
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
296727 次 |
| 最近记录: |