起動時にランタイム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環境が欠落している場合、この方法は機能します。

おすすめ記事