시작 시 런타임 unzip 명령이 스크립트에서 작동하지 않습니다.

시작 시 런타임 unzip 명령이 스크립트에서 작동하지 않습니다.

다음 bash 스크립트가 있습니다.

FILE=/home/pi/kpidry/test.zip
if test -f "$FILE"; 
then
    echo "$FILE exists"
    rm -r /home/pi/test/*
    unzip /home/pi/kpidry/test.zip -d /home/pi/test/
    rm -r /home/pi/kpidry/test.zip
fi
exit 0

스크립트를 수동으로 실행하면 정상적으로 실행되고 모든 명령이 예상대로 실행됩니다. 그러나 시작 시 스크립트를 실행하기 위해 rc.local에 줄을 추가했습니다. 실행되면 unzip 라인을 제외한 모든 라인을 실행합니다. 아직 압축해제 프로그램이 실행되지 않았기 때문인가요? 그렇다면 rc.local에서 수동으로 실행할 수 있나요?

어떤 종류의 도움이라도 대단히 감사하겠습니다!

답변1

내 생각엔 /usr/bin/에 있는 파일이 부팅 시 사용 가능하다는 보장이 없는 것 같습니다.

/usr/bin은 시스템을 부팅(즉, 시작)하거나 복구하는 데 필요하지 않은 대부분의 실행 파일(즉, 실행 준비가 완료된 프로그램)이 포함된 Unix 계열 운영 체제의 표준 디렉터리입니다. (인용하다:http://www.linfo.org/usr_bin.html)

unzip 대신 "/usr/bin/unzip"을 호출해 보세요.

호출이 충분히 늦어지고 그때까지 /usr/bin/이 마운트되고 PATH 환경이 누락된 경우 이 방법이 작동합니다.

관련 정보