每次脚本运行时从0到999增加数量并重新开始

时间:2017-07-18 12:32:37

标签: bash

我有一个脚本需要每次运行时更改数字。从0到999最多可以有3位数,需要在达到999后重复。

#!/bin/sh

#Ncat is a part of the nmap, install nmap to use ncat

#Define variables
i=poland.aprs2.net
port=14580
lat=3439.94N
lon=02517.67E_ #_ is a symbol for WX station
user=APRS
password=99999

#Generate authentication data
aprsauth="user $user pass $password filter m/50"

#Generate Weather data
xastir="$user>APX206,TCPIP*:!$lat/$lon".../...g...t...h41X210""

#Telemetry data
t1="$user>APX206,TCPIP*:T#672,060,000,000,000,000,00000000"

#Send data to the APRS server
printf "%s\n" "$aprsauth" "$xastir" "$t1"| ncat --send-only $i $port

#Output control
printf "%s\n" "$aprsauth" "$xastir" "$t1"

需要更改的代码是T# 672 来自:

t1="$user>APX206,TCPIP*:T#672,060,000,000,000,000,00000000"

T#xxx是APRS协议中的序列号,仅支持3位数。每个遥测报告都需要不同的序列号。

1 个答案:

答案 0 :(得分:6)

您需要维护某种外部状态:将最后使用的数字写入文件,并在启动时从该文件中读取,这样您就可以增加它。

read num < /var/run/myscript/last_value
num=$((num + 1))
if (( num == 1000 )); then
    num=0
fi
echo "$num" > /var/run/myscript/last_value

...

printf -v t1 "%s>APX206,TCPIP*:T#%03d,060,000,000,000,000,00000000" "$user" "$num"