2013-07-07 20 views
4

是否有使用簡單的IF-THEN語句如功能差

if [ … ]; then 
do 

過度使用短路列表評估用的命令組,如

[ … ] && { 
} 
的任何功能優點

當然,如果 - 那麼寫它的標準方式,但是從功能的角度來看,是否存在任何實際的差異/優勢?

使用()而不是{}會產生一個新的子shell,從而爲if-then塊內的變量創建一個新的作用域。

回答

1

不是你的榜樣,但常見

condition && foo || bar 

是不一樣的

if condition 
then 
    foo 
else 
    bar 
fi 

在前一種情況下,bar將運行不僅當condition失敗,但如果foo失敗。

+0

會和笨拙的'condition && {foo;假; } ||酒吧「,對吧? – knittl

+0

如果你的意思是'condition && {foo;真正; } ||酒吧「,然後是的。 –

+0

嗯,是的,我的意思是寫'condition && {foo; :; } ||酒吧' – knittl