我正試圖編寫一個bash別名/函數,它需要一個ftp路徑並運行lftp
至pget
該文件。bash腳本使用ftp路徑運行lftp
鑑於遠程路徑,用空格編碼爲%20
,如:
sftp://ftp.example.com/Some%20Folder/BigFile.mov
我有這樣的片段清理URL的%20
和服務器部分:
echo $1 | sed 's/%20/ /g' | sed 's/sftp:\/\/ftp.example.com//g';
這給我
/Some Folder/BigFile.mov
現在我需要通過lftp
這樣運行的:
lftp sftp://ftp.example.com -u user,pass -e "pget -cn10 '/Some Folder/BigFile.mov'"
我想創建一個函數來命令別名,讓我們稱之爲lget
,這樣我就可以使用原來的URL :
lget "sftp://ftp.example.com/Some%20Folder/BigFile.mov"
這裏的解決方案應該喜歡的東西,像
alias lget='function _lget(){ lftp ... };_lget'
但是我完全失去了如何在函數中包含參數,是否通過sed
處理了它,以及如何處理嵌套的引號。
我可能需要一些反引號...
使用的功能,而不是一個別名的其餘的應該很容易。 – tripleee
對不起,我沒有很多bash腳本知識;你將如何編寫函數以在'lftp'命令中包含處理後的URL? –