cronjobスクリプト実行の代わりにcliスクリプト実行を検出する

cronjobスクリプト実行の代わりにcliスクリプト実行を検出する

コンソールでシェルスクリプトを手動で実行するか、cronがスクリプトを起動するか(crontabを使用するなど)、検出する方法はありますか?

編集:使用例:手動でcronが表示されてはいけない進行状況バーを表示したいと思います。

答え1

アプリケーションが端末(TTY)を使用できるかどうかを実際に検出したいようです。 (これにより、端末で実行しているときに進行状況バーを表示できますが、で実行している場合は問題になりませんcrontab。)

#!/bin/bash
#
[[ -t 2 ]] && echo "This is a status update for the terminal" >&2
echo "This is a normal line of results"

これtest -tにより、番号付きファイル記述子が端末に接続されていることが確認されます。 0 はい標準入力、1は標準出力、2は標準エラー

通常、進捗情報は次の場所に記録されます。標準エラー実際の結果を次に書きます。標準出力。これにより、ユーザーが進行状況/ステータス出力を表示したくない場合は、それらを削除でき、ステータスの更新と結果を効果的に分離できます。

yourprogram arg1 arg2 ... > results.txt

関連情報