Me preguntaba si alguien podría ayudarme con esto. Perdón por la pregunta de novato. Recientemente he creado un script para montar automáticamente una imagen de Time Machine en un disco duro conectado a mi router. En su mayor parte, el script funciona muy bien. Conecta el disco cuando enciendo el ordenador y, si se desconecta por cualquier motivo, vuelve a conectarlo y monta la imagen de nuevo. Aquí está el script:
on idle
set mySSID to do shell script "/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport -I | awk '/ SSID/ {print substr($0, index($0, $2))}'"
set mountedDiskName to "Time Machine"
set diskIsMounted to false
if mySSID is "TALKTALK844E28" or mySSID is "TALKTALK844E285G" then
tell application "System Events" to set diskNames to name of every disk
if mountedDiskName is in diskNames then
set diskIsMounted to true
end if
if mountedDiskName is not in diskNames then
set diskIsMounted to false
end if
if diskIsMounted is false then
mount volume "smb://192.168.1.1/"
delay 30
do shell script "hdiutil attach -mountpoint '/Volumes/Time Machine' /Volumes/Guille/TimeMachine.sparsebundle"
end if
if diskIsMounted is true then
end if
end if
return 300
end idle
Sin embargo, de vez en cuando, me aparece este error:
En realidad no me molesta porque si sólo hago clic en Aceptar se va y lo vuelve a intentar 5 minutos después. Sin embargo, me gustaría saber si hay una manera de asegurarse de que estos diálogos se descarten automáticamente para que no interrumpan mi flujo de trabajo y Time Machine permanezca discretamente en el fondo hasta que accidentalmente envíe algo a la papelera :-)
0 votos
Yo usaría un
try
declaración y probablemente lo haga junto con unon error
gestor de declaraciones , atrapando así el error y evitar el mensaje de error mostrando como es actualmente. Con el uso de unon error
gestor de declaraciones elegiría tener el mensaje de error en el Centro de notificaciones mediante undisplay notification
comando ya que no requiere la interacción del usuario para descartar y es menos probable que interrumpa negativamente el flujo de trabajo, en comparación con tener que descartar manualmente el mensaje de error que está recibiendo actualmente.0 votos
¿Por qué su
awk
comando utilizando unsubstr()
función cuandoawk '/ SSID/{print $2}'
es todo lo que se necesita para obtener elSSID
de la salida de la/S*/L*/P*/A*/V*/C*/R*/airport -I
comando ?