2017-02-23 75 views
0

我想部署網站到Azure應用服務從高山Linux框使用lftp。用戶名始終爲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:[email protected]$FTP_SERVER,但沒有幫助。與usr\\$usrusr\\\$usr相同。

+0

只是好奇 - 你*有*使用FTP進行部署?還有很多其他的選擇...... –

+0

嗯,有一個_webdeploy_就是這樣。我不會說這麼多。 –

+0

現在*我很困惑:我們正在談論Web Apps,我們不是?除了ftp,Web Apps與VSTS/git/github/onedrive/dropbox/bitbucket集成。我會叫*很多。* –

回答

2

問題不是lftp,而是GitLab CI。 美元符號需要在那裏引用另一個$。我描述了它here

0

Lftp本身並不擴展shell變量,因此很可能在您分配給FTP_USER變量時發生替換。

+0

你是對的。我專注於'lftp',但問題在於GitLab CI。 '$'需要引用。我在這裏寫了整個故事:https://blog.cincura.net/233595-handling-a-dollar-sign-in-a-username-for-deploying-azure-web-app-via-ftp-on-gitlab -ci /。 –