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

관련 정보