1

我在网上得到了一个 bash 脚本,它使用树莓派的相机模块在指定的时间范围内以指定的速率拍照。我似乎无法在上午 10 点之前运行脚本,因为它无法将时间范围添加到时间(24 小时内),因为它的数字前面有一个 0。我尝试像其他一些帖子所说的那样在变量前面添加一个#,但是 pi 吐出一个语法错误。我显然是 bash 的新手。

代码:

#!/bin/sh

if [ ! -n "$3" ]
then
    echo ""
    echo "\033[1;31mUsage: tl <interval (in seconds)> <duration (in hours)> <duration (in minutes)>"
    echo ""
    echo "\033[1;32mExample: tl 10 5 30"
    echo "(Takes a picture every 10 seconds for the next 5 hours and 30 minutes)"
    echo "\033[0m"

elif  [ ! -d /mnt/usb/tl_storage/pics_$(date +%F) ]
then
    sudo mkdir -p /mnt/usb/tl_storage/pics_$(date +%F)
    interval=$(($1 * 1000))
    duration=$((($2 * 60 + $3) * 60000))
    hour_act=$(date +%H)
    minute_act=$(date +%M)
    hour_tmp=$(($hour_act + $2))
    minute_tmp=$(($minute_act + $3))
    if [ "$hour_tmp" -gt 24 ]
    then
        hour_then=$(($hour_tmp - 24))
    else
        hour_then=$hour_tmp
    fi
    if [ "$minute_tmp" -gt 60 ]
    then
        minute_then=$(($minute_tmp -60))
        hour_then=$((hour_then + 1))
    else
        minute_then=$minute_tmp
    fi
    echo "\033[1;31mTaking Pictures for timelapse in progress. Check back at $hour_then:$minute_then"
    echo "\033[0m"
    cd /mnt/usb/tl_storage/pics_$(date +%F)/
    sudo raspistill -o lapse_%04d.jpg -tl $interval -t $duration
    cd $HOME
else
    interval=$(($1 * 1000))
    duration=$((($2 * 60 + $3) * 60000))
    hour_act=$(date +%H)
    minute_act=$(date +%M)
    hour_tmp=$(($hour_act + $2))
    minute_tmp=$(($minute_act + $3))
    if [ "$hour_tmp" -gt 24 ]
    then
        hour_then=$(($hour_tmp - 24))
    else
        hour_then=$hour_tmp
    fi
    if [ "$minute_tmp" -gt 60 ]
    then
        minute_then=$(($minute_tmp -60))
        hour_then=$((hour_then + 1))
    else
        minute_then=$minute_tmp
    fi
    echo "\033[1;31mTaking Pictures for timelapse in progress. Check back at $hour_then:$minute_then"
    echo "\033[0m"
    cd /mnt/usb/tl_storage/pics_$(date +%F)/
    sudo raspistill -o lapse_%04d.jpg -tl $interval -t $duration
    cd $HOME
fi

命令:

tl 5 0 5 //every five sec for five min

错误:

/bin/tl: 19: /bin/tl: arithmetic expression: expecting EOF: "09 + 0"
4

0 回答 0