尝试使用if语句来运行wget

时间:2015-04-15 19:33:53

标签: shell if-statement 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

该脚本似乎无法正常工作。

3 个答案:

答案 0 :(得分:1)

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”的分配不同。

如果没有,则将那部分因素视为例如你的整个事情可能(?)看起来像这样:

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

答案 1 :(得分:0)

你应该替换:

datetime=`${date}06`

datetime="${date}06"

关于:

if [ $hour = "7" ]

确保它是

if [ $hour = "07" ]

答案 2 :(得分:0)

您需要if [ $hour == "07" ](请注意双=