echo Impossible|sed 's/Im/To be /'

June 07, 2008

[tip] lftp 內建的邏輯判斷

概要:
自動化或程式化上常需要邏輯判斷 if; else; && || , 再此介紹 lftp 較少人知道的邏輯判斷符號, && ||。

lftp 功能強大,內建多模組,依不同協定啟用不同模組 http, ftp, ssh。 lftp 可以自行撰寫 modules,透過動態載入模組啟用。 lftp 可使用 pipe line 的功能也很特別,配合 less more 瀏覽查尋很好用 ,output files name tree 再加工處理成 lftp script 讓 lftp 批次傳檔。 lftp mirror 可 download 也可 upload,總而言之一整個優。

lftp 有 && 跟 || 可用,用法跟 bash 一樣。

Bash
$> ls /nodir && echo OK || echo error
ls: 無法存取 /nodir: 沒有此一檔案或目錄
error
$> ls /etc/passwd && echo OK || echo error
/etc/passwd
OK
lftp 
$> lftp ftp://ftp.nsysu.edu.tw/
cd Linux && cd .. || echo error
cd ok, cwd=/Linux
cd Nodir && cd .. || echo error
cd: Access failed: 550 /Nodir: No such file or directory
error
cd Nodir && cd .. || !echo error > /tmp/log
cd: Access failed: 550 /Nodir: No such file or directory
cd Nodir && cd .. || quit
cd: Access failed: 550 /Nodir: No such file or directory
$>