#!/bin/bash
date1=$1
date2=$2
startday=${date1#*-*-}
startmonthday=${date1#*-}
startmonth=${startmonthday%%-*}
startyear=${date1%%-*-*}
endday=${date2#*-*-}
endmonthday=${date2#*-}
endmonth=${endmonthday%%-*}
endyear=${date2%%-*-*}
#set current and end date
current=$startyear$startmonth$startday
end=$endyear$endmonth$endday
end=$(date -d "$end + 1 day" +"%Y%m%d") ;
#loop over all dates
ssh -T user@server << EOF
cd path
pwd
while [ $end != $current ]
do
{
echo $current;
current=$(date -d "$current + 1 day" +"%Y%m%d") ;
}
done
exit
EOF
这是我的代码。当我运行此代码时,它会进入无限循环,因为根据我的说法,下面的代码不起作用 current = $(date -d“$ current + 1 day”+“%Y%m%d”);
当我在没有ssh的情况下编写代码时,一切正常。 请告诉我它为什么不起作用。
while [ $end != $current ]
do
{
echo $current;
current=$(date -d "$current + 1 day" +"%Y%m%d") ;
}
done
我的实际需要是
ssh -T user@server << EOF
cd path
pwd
while [ $end != $current ]
do
{
scp user2@server2:path/upd_$current*var* .
current=$(date -d "$current + 1 day" +"%Y%m%d") ;
}
done
exit
EOF
请告诉我如何以有效的方式做到这一点 我想复制名为以下模式的文件。 upd_date-var.stats.xls 我每天都有一个新文件,我想要复制在作为参数传递的2个日期之间的所有日期的文件