bash FTP 脚本中的本地文件存在条件

Local file existence condition in bash FTP script

我想从服务器获取一个文件,条件是本地目录中不存在该文件。在最终的脚本中会有很多文件,但这里是一个只使用一个的例子。

我正在尝试这个:

#!/bin/bash
HOST='a.b.c.d'
USER='anonymous'
PASSWD='pass'

ftp -n -v $HOST << EOT
user $USER $PASSWD
prompt
binary

!test -f filename && get /remotedir/remotefilename filename

bye
EOT

我得到这个错误:+bash: get: command not found,大概是因为 get 是在本地而不是在 FTP 中调用的,但我不知道如何解决这个问题。

试试这个:

替换

!test -f filename && get /remotedir/remotefilename filename

来自

$(test -f filename && echo get /remotedir/remotefilename filename)