unix ftp脚本中的条件

时间:2017-06-05 06:00:01

标签: shell unix ftp sh

我正在尝试编写一个代码来检查特定日期的文件,如果它存在,它将把它带到我的本地主路径,如果它不存在,那么将检索不同日期的其他文件。

#!/bin/ksh

FILE1="CAS_20170604.txt"
FILE2="CAS_20170603.txt"

/usr/bin/ftp -n 93.45.148.9 << EOF
    user usr passwd
    cd "/abc/def"
    bin
    get $FILE1

if [ ! -f $FILE1 ];
then
    cd "/abc/def"
    bin
    get $FILE2
fi
    bye
    !EOF! 

在执行脚本时,我得到了两个不需要的文件,以及以下错误:

?Invalid command
?Invalid command

请有人在这里帮助我。

1 个答案:

答案 0 :(得分:2)

您无法在ftp脚本中使用shell命令。

您必须将脚本分成两部分:

/usr/bin/ftp -n 93.45.148.9 << EOF
user usr passwd
cd "/abc/def"
bin
get $FILE1
bye
!EOF! 

if [ ! -f $FILE1 ];
then
    /usr/bin/ftp -n 93.45.148.9 << EOF
    user usr passwd
    cd "/abc/def"
    bin
    get $FILE2
    bye
    !EOF! 
fi