我正在尝试使用 lftp 的 alpine linux box将网站部署到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\$usr
或usr\$usr
。
问题不是 lftp
,而是gitlab ci。美元符号需要由另一个$
引用。我在这里描述了它。
lftp本身不会扩展壳变量,因此当您分配给ftp_user变量时,很可能发生替换。