尝试使用 if 语句 运行 wget
Trying to use if statements to run wget
我正在尝试设置一个脚本来查看当前日期和时间,然后将其转换为 yyyymmdd + 2 位数字的格式。例如 2015041506。小时应基于 24 小时制。
然后脚本会回显日期,然后 运行 wget。
#!/bin/sh
#
# variables
#
basedir1="http://www.ftp.ncep.noaa.gov/data/nccf/com/hur/prod/hur."
#basedir2="http://www.ftp.ncep.noaa.gov/data/nccf/com/hur/prod/hwrf."
date=`date +"%Y%m%d"`
date2=`date +"%Y%m%d" -d "yesterday"`
hour=`date +%H`
#
# main
#
if [ $hour = "7" ]
then
datetime=`${date}06`
echo ${datetime}
url1="${basedir1}${datetime}/"
wget -r -l1 --no-parent -e robots=off -R 'index.*' -A '*.grib.*.grib2' -P /awips2/edex/data/manual/ $url1
elif [ $hour = "13" ]
then
datetime=`${date}12`
echo ${datetime}
url1="${basedir1}${datetime}/"
wget -r -l1 --no-parent -e robots=off -R 'index.*' -A '*.grib.*.grib2' -P /awips2/edex/data/manual/ $url1
elif [ $hour = "19" ]
then
datetime=`${date}18`
echo ${datetime}
url1="${basedir1}${datetime}/"
wget -r -l1 --no-parent -e robots=off -R 'index.*' -A '*.grib.*.grib2' -P /awips2/edex/data/manual/ $url1
elif [ $hour = "1" ]
then
datetime=`${date2}00`
echo ${datetime}
url1="${basedir1}${datetime}/"
wget -r -l1 --no-parent -e robots=off -R 'index.*' -A '*.grib.*.grib2' -P /awips2/edex/data/manual/ $url1
fi
脚本似乎没有运行。
你应该替换:
datetime=`${date}06`
和
datetime="${date}06"
关于:
if [ $hour = "7" ]
确保它是
if [ $hour = "07" ]
你需要if [ $hour == "07" ]
(注意双=
)
case $hour in
13)
datetime=`${date}12`
echo ${datetime}
url1="${basedir1}${datetime}/"
wget -r -l1 --no-parent -e robots=off -R 'index.*' -A '*.grib.*.grib2' -P /awips2/edex/data/manual/ $url1
;;
19)
datetime=`${date}18`
echo ${datetime}
url1="${basedir1}${datetime}/"
wget -r -l1 --no-parent -e robots=off -R 'index.*' -A '*.grib.*.grib2' -P /awips2/edex/data/manual/ $url1
1)
datetime=`${date2}00`
echo ${datetime}
url1="${basedir1}${datetime}/"
wget -r -l1 --no-parent -e robots=off -R 'index.*' -A '*.grib.*.grib2' -P /awips2/edex/data/manual/ $url1
;;
*)
datetime=`${date}06`
echo ${datetime}
url1="${basedir1}${datetime}/"
wget -r -l1 --no-parent -e robots=off -R 'index.*' -A '*.grib.*.grib2' -P /awips2/edex/data/manual/ $url1
;;
esac
然后我会查看 wget 命令,因为前三行中的每一行都非常相似,至少在 'datetime' 赋值方面是这样。 (我懒得为你做这项工作。也就是说,它们与 "datetime".
的分配有 any 不同的地方吗?
如果不是,则将该部分排除在外,例如你的整个事情 可能 (?) 看起来像这样:
case $hour in
13) dh=12;;
19) dh=18;;
1) dh=06;;
*) dh=00;;
esac
datetime=$(date)$dh
echo ${datetime}
url1="${basedir1}${datetime}/"
wget -r -l1 --no-parent -e robots=off -R 'index.*' -A '*.grib.*.grib2' -P /awips2/edex/data/manual/ $url1
我正在尝试设置一个脚本来查看当前日期和时间,然后将其转换为 yyyymmdd + 2 位数字的格式。例如 2015041506。小时应基于 24 小时制。
然后脚本会回显日期,然后 运行 wget。
#!/bin/sh
#
# variables
#
basedir1="http://www.ftp.ncep.noaa.gov/data/nccf/com/hur/prod/hur."
#basedir2="http://www.ftp.ncep.noaa.gov/data/nccf/com/hur/prod/hwrf."
date=`date +"%Y%m%d"`
date2=`date +"%Y%m%d" -d "yesterday"`
hour=`date +%H`
#
# main
#
if [ $hour = "7" ]
then
datetime=`${date}06`
echo ${datetime}
url1="${basedir1}${datetime}/"
wget -r -l1 --no-parent -e robots=off -R 'index.*' -A '*.grib.*.grib2' -P /awips2/edex/data/manual/ $url1
elif [ $hour = "13" ]
then
datetime=`${date}12`
echo ${datetime}
url1="${basedir1}${datetime}/"
wget -r -l1 --no-parent -e robots=off -R 'index.*' -A '*.grib.*.grib2' -P /awips2/edex/data/manual/ $url1
elif [ $hour = "19" ]
then
datetime=`${date}18`
echo ${datetime}
url1="${basedir1}${datetime}/"
wget -r -l1 --no-parent -e robots=off -R 'index.*' -A '*.grib.*.grib2' -P /awips2/edex/data/manual/ $url1
elif [ $hour = "1" ]
then
datetime=`${date2}00`
echo ${datetime}
url1="${basedir1}${datetime}/"
wget -r -l1 --no-parent -e robots=off -R 'index.*' -A '*.grib.*.grib2' -P /awips2/edex/data/manual/ $url1
fi
脚本似乎没有运行。
你应该替换:
datetime=`${date}06`
和
datetime="${date}06"
关于:
if [ $hour = "7" ]
确保它是
if [ $hour = "07" ]
你需要if [ $hour == "07" ]
(注意双=
)
case $hour in
13)
datetime=`${date}12`
echo ${datetime}
url1="${basedir1}${datetime}/"
wget -r -l1 --no-parent -e robots=off -R 'index.*' -A '*.grib.*.grib2' -P /awips2/edex/data/manual/ $url1
;;
19)
datetime=`${date}18`
echo ${datetime}
url1="${basedir1}${datetime}/"
wget -r -l1 --no-parent -e robots=off -R 'index.*' -A '*.grib.*.grib2' -P /awips2/edex/data/manual/ $url1
1)
datetime=`${date2}00`
echo ${datetime}
url1="${basedir1}${datetime}/"
wget -r -l1 --no-parent -e robots=off -R 'index.*' -A '*.grib.*.grib2' -P /awips2/edex/data/manual/ $url1
;;
*)
datetime=`${date}06`
echo ${datetime}
url1="${basedir1}${datetime}/"
wget -r -l1 --no-parent -e robots=off -R 'index.*' -A '*.grib.*.grib2' -P /awips2/edex/data/manual/ $url1
;;
esac
然后我会查看 wget 命令,因为前三行中的每一行都非常相似,至少在 'datetime' 赋值方面是这样。 (我懒得为你做这项工作。也就是说,它们与 "datetime".
的分配有 any 不同的地方吗?如果不是,则将该部分排除在外,例如你的整个事情 可能 (?) 看起来像这样:
case $hour in
13) dh=12;;
19) dh=18;;
1) dh=06;;
*) dh=00;;
esac
datetime=$(date)$dh
echo ${datetime}
url1="${basedir1}${datetime}/"
wget -r -l1 --no-parent -e robots=off -R 'index.*' -A '*.grib.*.grib2' -P /awips2/edex/data/manual/ $url1