2016-12-04 43 views
-1

我一直搞不清楚這個自從我開始寫的bash腳本確保0 bash命令退出的,如果/ Fi塊

YARN=$(which yarn) 

if [ -z "${YARN}" ]; then 
    npm install -g yarn && 
fi 

上面給出了一個語法錯誤,但是這不會:

if [ -z "${YARN}" ]; then 
    npm install -g yarn && 
    echo "yarn installed" 
fi 

這是爲什麼?

以及我們如何能夠保證,如果我們這樣做,而不是:

if [ -z "${YARN}" ]; then 
    npm install -g yarn 
fi 

echo "yarn installed" 

是紗線確實將安裝在調用echo語句是什麼時候?

回答

1

&&後需要一個命令,你的情況應該是echo "yarn installed"

if [ -z "${YARN}" ]; then 
    npm install -g yarn && echo "yarn installed" 
fi 

&&是一個shell運營商這表明當且僅當以前的命令成功後,運行該命令($?==0)的外殼。