Вы можете попробовать что-то вроде этого:
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
Мы проверяем интернет-соединение с помощью pinging google, вы можете изменить его на локальный IP, если вы не хотите проверять интернет-соединение. Если мы можем пропинговать Google, тогда мы сообщаем, что искатель извлекает старое монтирование, и снова монтирует общий ресурс SMB, иначе спит в течение 5 секунд.
Это очень грязно, но делает то, что вы хотите, есть много возможностей для улучшений.