2016-12-04 3 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 

&&は、前のコマンドが成功した場合に限って後($?==0)のコマンドを実行するシェルを示し、シェル演算子です。

関連する問題