Você pode tentar algo assim:
last_status=0
while :
do
ping -t 1 google.com > /dev/null 2>&1
exit_status=$?
if [[ $exit_status == 0 && $last_status != 0 ]]; then
last_status=$exit_status
osascript -e 'tell application "Finder"' -e 'eject "share"' -e 'end tell'
osascript -e 'tell application "Finder"' -e 'open location "smb://server/share"' -e 'end tell'
else
last_status=$exit_status
fi
sleep 5
done
Verificamos a conexão à Internet fazendo ping no google, você pode alterar isso para um IP local se não quiser testar a conectividade com a Internet. Se conseguirmos fazer o ping no google, dizemos ao localizador para ejetar a montagem antiga e montar o compartilhamento SMB novamente, caso contrário, durma por 5 segundos.
É muito sujo, mas faz o que você quer, há muito espaço para melhorias.