cronによるスケジュール実行、または Tera Term などのターミナルによる手動実行のどちらでシェルが実行されているかを条件判定する。
シェルに以下のような条件文を書いて、条件判定できる。
#!/bin/bash
terminal_name=`tty`
if [ "${terminal_name}" = "not a tty" ]; then
echo "cron スケジュール実行"
else
echo "ターミナル シェル手動実行"
fi
tty コマンドは、標準入力に接続されているターミナルのファイル名を出力する。cron によるスケジュール実行では、ターミナルを使用しないため、not a tty となる。※tty コマンドを手動で実行して、実行結果を確認してから、シェルの条件文に指定する。
スポンサーリンク

0 件のコメント :
コメントを投稿