「if then else」ステートメントを含むWi-Fi接続を確認するスクリプトを作成しました。スクリプトを手動で実行する場合は「if」ステートメントは1でなければならず、crontabが自動的に実行する場合は「if」ステートメントは0でなければならず、スクリプトはelseコマンドを発行します。他の結果の理由を想像できる人はいますか?
スクリプトの「if」条件は次のとおりです。
if ifconfig wlan0 | grep -q "inet addr:" ; then
答え1
バイナリは、デフォルトではcronパスにないifconfig
です。/sbin
コマンドのフルパスを使用します。
if /sbin/ifconfig wlan0 | /bin/grep -q "inet addr:" ; then