質問: スクリプトが手動で呼び出されるのではなく、cronによって開始されているかどうかを確認します プログラムの実行時にcronが設定する変数はありますか?スクリプトがcronで実行されている場合は、一部をスキップします。それ以外の場合は、それらの部分を呼び出します。bashスクリプトがcronによって起動されているかどうかを確認するにはどうすればよいですか?
回答: ここではcronがデフォルトで環境に役立つことを認識していませんが、目的の効果を得るためにできることがいくつかあります。1)スクリプトファイルへのハードリンクまたはソフトリンクを作成して、たとえば、myscriptとmyscript_via_cronが同じファイルを指すようにします。次に、条件付きでコードを実行したり、コードの特定の部分を省略したりするときに、スクリプト内で$0の値をテストできます。適切な名前をcrontabに入力すれば、設定は完了です。2)スクリプトにオプションを追加し、crontab呼び出しでそのオプションを設定します。たとえば、スクリプトにコードの適切な部分を実行または省略するように指示するオプション-cを追加し、crontabのコマンド名に-cを追加します。そしてもちろん、cron canは任意の環境変数を設定するので、run_by_cron="true"のような行をcrontabに入れて、スクリプトでその値を確認できます。