我正在尝试使用 lftp 从 Alpine Linux 盒子将网站部署到 Azure 应用服务。用户名始终采用 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"
所以 username 中的 $
实际上并不是命令的一部分,而是内部变量,因此 $usr
不被视为变量。
看起来是 \
和 $
的组合在某种程度上混淆了 lftp。有什么想法如何以不同的方式传递凭据?或者逃避它。
我也尝试了ftp://$FTP_USER:$FTP_PASSWORD@$FTP_SERVER
,但这没有帮助。与 usr\\$usr
或 usr\\\$usr
相同。
最佳答案
问题不是 lftp
,而是 GitLab CI。 美元符号需要用另一个$
引用。我描述过here .
关于azure - 在lftp中处理$登录用户名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42423215/