【发布时间】:2018-10-09 15:32:12
【问题描述】:
给定一个特定的日期,我想查询和下载数据。数据格式为2018-04-22,但脚本以2018 04 22 的形式获取数据,所以我正在执行以下操作:
#!/bin/sh
filename=extract_dates.dat
line=1
totline=`wc -l < $filename`
while [ $line -le $totline ]
do
date=`sed -n -e ''"$line"'p' $filename | awk '{print $line}'`
startdate=$(echo $date | tr "-" " ") # ex: 2018-04-22 --> 2018 04 22
plusone=`echo ${startdate:8:2}` # extracts the last 2 digits from date. so in this example 22
enddate=${startdate:0:8}`expr $plusone + 1` # plus 1 .. so now it's 23
echo \'$startdate\' # '2018 04 22'
echo \'$enddate\' # '2018 04 23'
mkdir $date
cd $date
# query and download data
../prog_access.sh -StartDate \'$startdate\' -EndDate \'$enddate\'
脚本运行但输出结果为空。 但是,这在命令行中可以正常工作:
../prog_access.sh -StartDate '2018 04 22' -EndDate '2018 04 23'
怎么了?我知道问题出在日期上,但我不知道如何解决。
【问题讨论】:
-
@rkta:如问题所示,
#!有一个前导空格,所以它没有任何作用。不过你是对的,#!是错误的。 -
当您似乎在使用
sh时,为什么还要用bash标记这个问题?