检测到移动时拍摄快照的Bash脚本
这个脚本在我的Raspberry Pi上运行。我想读取返回0或1的运动传感器的状态。和拉斯皮斯在一起直到我拍照。它工作得很好,但不知何故,回声运动B为0的部分经常被调用。我希望它只被调用一次,然后不再在没有运动的情况下调用 还有谁有改进的建议吗?我感谢任何形式的帮助:检测到移动时拍摄快照的Bash脚本,bash,raspberry-pi,Bash,Raspberry Pi,这个脚本在我的Raspberry Pi上运行。我想读取返回0或1的运动传感器的状态。和拉斯皮斯在一起直到我拍照。它工作得很好,但不知何故,回声运动B为0的部分经常被调用。我希望它只被调用一次,然后不再在没有运动的情况下调用 还有谁有改进的建议吗?我感谢任何形式的帮助: #!/bin/bash motionB=false while true; do motion=$(gpio read 0) if [ $motion -eq 1 ] then
#!/bin/bash
motionB=false
while true; do
motion=$(gpio read 0)
if [ $motion -eq 1 ]
then
if [ "$motionB"==false ]
then
echo "Want to take photo!"
DATE=$(date +"%Y-%m-%d_%H%M")
raspistill -vf -hf -o /var/www/images/$DATE.jpg
motionB=true
echo "Took Photo!!"
fi
else
if [ "$motionB"==true ]
then
echo "motionB is false"
motionB=false
fi
fi
done
你需要一个机制来通知你何时醒来。也许gpio采用了一个选项,该选项将导致它阻塞,直到出现所需的事件。否则,您只需要定期轮询设备。或者,你可以保持自旋循环,不做任何输出。比如说,
while sleep 1; do ...
呃。。。真假?在bash?抱歉,我的意思是0和1:Dtrue和false在这里用作字符串;但它们也是命令,您可以在为true或if为true时编写。您的意思是在==周围添加空格吗?例如,如果[$motionB=0]并使用=而不是==?gpio读取0做什么