在 lftp 中处理 $ 登录用户名

Handling $ sign in username in lftp

我正在尝试使用 lftpAlpine Linux 框将网站部署到 Azure App Service。用户名始终采用 usr$usr 格式。无论出于何种原因 lftp(版本 4.7.6-r0)仅使用 usr\ 部分。我正在使用的命令正在使用变量。

lftp -c "set ssl:verify-certificate on && set ftp:ssl-force on && open -u $FTP_USER,$FTP_PASSWORD $FTP_SERVER && mirror -vvv -R -e --scan-all-first --transfer-all --overwrite --parallel=24 ./wwwroot $FTP_LOCATION"

因此用户名中的$实际上不是命令的一部分,而是内部变量,因此$usr不被视为变量。

看起来是 \$ 的组合以某种方式混淆了 lftp。任何想法如何以不同方式传递凭据?或者逃避它。

我也试过 ftp://$FTP_USER:$FTP_PASSWORD@$FTP_SERVER,但没有用。与 usr\$usrusr\$usr.

相同

Lftp 本身不会扩展 shell 变量,因此很可能在您分配给 FTP_USER 变量时发生替换。

问题不是 lftp,而是 GitLab CI。 美元符号 需要被另一个 $ 引用。我描述了它here