我正在使用 Grads 脚本语言制作天气模型图表,并且我正在使用 bash 脚本,因此我可以使用 while 循环下载模型数据(以 grib2 格式)并为模型运行的每一帧调用 grads 脚本。现在,我有一个循环运行给定预测时间的所有脚本,并通过 FTP 上传图像输出。此 for 循环完成后,将下载下一小时的 grib2 数据,并再次运行循环。
for ((i=0;i<${#SCRIPTS[@]};i++)); do
#define filename
FILENAME="${FILENAMES[i]}${FORECASTHOUR}hrfcst.png"
#run grads script
/home/mint/opengrads/Contents/opengrads -lbc "run /home/mint/opengrads/Contents/plotscripts/${SCRIPTS[i]} $CTLFILE $INIT_STRINGDATE $INIT_INTDATE $INITHOUR $FILENAME $h $MODEL $MODELFORTITLE 500"
#run ftp script
#sh /home/mint/opengrads/Contents/bashscripts/ftpsample.sh $INIT_INTDATE $INITHOUR $FILENAME $MODEL
done
这是不雅的,因为我每次发送单个图像时都会打开和关闭一个 FTP 会话。我宁愿将给定预测时间的文件名的名称写入 .txt 文件(例如:在循环中有一个“echo ${FILENAME} >> FILEOFFILENAMES.txt”)并让我的 FTP 脚本读取并发送所有这些文件在一个会话中。这可能吗?