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
检测到移动时拍摄快照的Bash脚本_Bash_Raspberry Pi - Fatal编程技术网

检测到移动时拍摄快照的Bash脚本

检测到移动时拍摄快照的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

这个脚本在我的Raspberry Pi上运行。我想读取返回0或1的运动传感器的状态。和拉斯皮斯在一起直到我拍照。它工作得很好,但不知何故,回声运动B为0的部分经常被调用。我希望它只被调用一次,然后不再在没有运动的情况下调用

还有谁有改进的建议吗?我感谢任何形式的帮助:

#!/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做什么