在 lftp 中处理 $ 登录用户名
Handling $ sign in username in lftp
我正在尝试使用 lftp 从 Alpine 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\$usr
或 usr\$usr
.
相同
Lftp 本身不会扩展 shell 变量,因此很可能在您分配给 FTP_USER 变量时发生替换。
问题不是 lftp
,而是 GitLab CI。 美元符号 需要被另一个 $
引用。我描述了它here。
我正在尝试使用 lftp 从 Alpine 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\$usr
或 usr\$usr
.
Lftp 本身不会扩展 shell 变量,因此很可能在您分配给 FTP_USER 变量时发生替换。
问题不是 lftp
,而是 GitLab CI。 美元符号 需要被另一个 $
引用。我描述了它here。