如何将变量传递到 FTP 连接?

如何将变量传递到 FTP 连接?

我正在使用lftp连接到 FTP 服务器并尝试cd进入特定目录,并将该目录位置保存为变量REMOTE_DIRECTORY.

我很确定这不起作用,因为文件夹名称中存在空格,但我尝试过单引号和双引号,但这并没有解决我遇到的问题。不知道还能尝试什么。这是我尝试过的:

REMOTE_DIRECTORY="SRC Test Data"
export workdir=/home/ubuntu/tmp

lftp -u $USER,$PASS $HOST <<EOF
set ftp:ssl-protect-data true
set ftp:ssl-force true
set ssl:verify-certificate no
pwd 
cd $REMOTE_DIRECTORY
pwd
cd 'SRC Test Data'
pwd
ls -d > $workdir/src_list
quit
EOF

该脚本的输出是:

ftp://FTP_User-RW:[email protected]
Usage: cd remote-dir
ftp://FTP_User-RW:[email protected]
ftp://FTP_User-RW:[email protected]/SRC%20Test%20Data

因此,只有当我在命令中明确输入文件夹名称时,它显然才起作用cd。我该如何使用变量来做到这一点?

答案1

当变量扩展时,就像输入

cd SRC Test Data

空间导致它爆炸。

尝试:

 cd "$REMOTE_DIRECTORY"

另请参阅为什么我的 shell 脚本会因为空格或其他特殊字符而卡住?

相关内容