Weil Sie nicht über einen Status, sondern über eine Statusänderung informiert werden möchten. Man muss sich also irgendwo an den vorherigen Status erinnern, etwa:
#! /bin/bash statusFile=/var/tmp/connected # used to remember status pingedHost=8.8.8.8 checkPeriod=5 # seconds while true do echo "Sleeping..." sleep $checkPeriod echo "Checking..." ping -c 1 $pingedHost > /dev/null 2>&1 if [[ $? -eq 0 ]] then echo "Ping OK..." if [[ ! -f $statusFile ]] # not connected already then echo "Reconnected..." # send reconnection mail here touch $statusFile # remember state fi else echo "Ping KO..." if [[ -f $statusFile ]] # was connected before then echo "Disconnected..." # send disconnection mail here rm $statusFile # remember state fi fi done