sbinにインストールされているスクリプトのif文が失敗する

sbinにインストールされているスクリプトのif文が失敗する

失敗するように見える単純なコードブロックがあり、その理由は100%不明です。

if ! -h /usr/sbin/gitploy; then
    curl  https://raw.githubusercontent.com/jeremyBass/gitploy/master/gitploy | sudo sh -s -- install
    [ -h /usr/sbin/gitploy ] || echoerr "gitploy failed install"
else
    gitploy gitploy_update
fi

失敗しますが、もしそうするなら

[ -h /usr/sbin/gitploy ] || echoerr "gitploy failed install"

それ自体でうまく動作します。私は簡単な理由があると確信しています。どんなアイデアがありますか?

答え1

これにより、nested ifブロックを再作成する必要があります。たとえば、次のようになります。

if [ ! -h /usr/sbin/gitploy ]; then
    curl  https://raw.githubusercontent.com/jeremyBass/gitploy/master/gitploy | sudo sh -s -- install
    [ -h /usr/sbin/gitploy ] || echoerr "gitploy failed install"
else
    gitploy gitploy_update
fi

関連情報