繁体   English   中英

sh脚本中的命令循环

[英]command loop in sh script

我正在树莓上创建一个sh脚本以进行延时拍摄。 我已经在脚本4命令中包含了该命令,该命令将连续发生,每个命令都经过测试并且可以运行。 现在我的问题是:如何无限期地返回到最后一个命令之后的第一个命令?

#!/bin/bash

sudo raspistill -w 1024 -h 768 -o /home/pi/timelapse/a%04d.jpg -t 600000 -tl 30000
sudo kill $(ps ax | grep 'timelapse' | awk '{print $1}')
sudo avconv -r 10 -i /home/pi/timelapse/a%04d.jpg -r 10 -vcodec libx264 -crf 20 -g 15 timelaps$
sudo rm /home/pi/timelapse/*.jpg

所以在sudo rm /home/pi/timelapse/*.jpg我想回到第一个命令。

你有什么主意吗?

谢谢。

您可以使用循环:

#!/bin/sh

while true; do 
    ...
done

或者,重新调用脚本:

#!/bin/sh

...

exec $0 "$@"

坦白地说,由于您根本不执行任何错误检查,因此这两种情况中的任何一种似乎都存在风险,并且存在进入相对快速的命令循环不断失败的风险。 至少,您应该通过使用while sleep 1;来暂停一下while sleep 1; 而不是while true;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM