シナリオ: sh スクリプト。手動で実行するのが通常ですが、crontab が開始される限り、Java バージョンが一致しないことを示すメッセージが表示されます (メジャー.マイナー バージョン 52.0 はサポートされていません)。すべてのファイルが絶対パスを使用しているかどうかは、crontab が java -jar を実行するときに環境変数が検出されないと推測されます。
したがって、sh スクリプトの前のネゴシエーションは次のようになります。
#!/bin/sh
. /etc/profile
. ~/.bash_profile
スケジュールされたタスクは正常に実行されました。つまり、crontab はデフォルトではユーザーの環境変数を読み取らず、単に設定するだけです。
#通常はコメントとして使用されますが、 #! を組み合わせると、これがシェル スクリプトであることを示し、その後のパスはこのスクリプトを解釈するために使用されるプログラムを指します。