Prima di tutto, la tua prima riga di code tell application "Safari" to set the content of var1 to URL of active tab of front window non viene nemmeno compilata! Errori con " Errore di sintassi Un nome di classe non può andare dopo questo identificatore." puntando a active tab . Quindi, do shell script "grep " & var1 & "path-to-my-file/file" potrebbe non funzionare come scritto comunque!
Un modo corretto per ottenere URL sarebbe:
tell application "Safari" to get the URL of current tab of window 1 of application "Safari"
O per impostarlo su una variabile , usa:
tell application "Safari" to set theURL to (get the URL of current tab of window 1 of application "Safari")
Quindi, le prime due righe di code nella tua domanda funzionerebbero se usate come:
try
tell application "Safari" to set theURL to (get the URL of current tab of window 1 of application "Safari")
do shell script "grep " & quoted form of theURL & " /path/to/target/file"
end try
-
Nota c'è uno spazio dopo la doppia citazione prima di /path/to/target/file e questo spazio è necessario.
-
Anche il codice è racchiuso in un'istruzione try per intercettare eventuali errori. Sebbene tu abbia bisogno di aggiungere ulteriore codice per elaborare gli errori (s) di conseguenza usando un on error gestore . Mentre l'istruzione try nasconderà un errore , sarà necessario utilizzarlo in combinazione con un on error gestore se grep non lo fa trova una corrispondenza e vuoi eseguire un'ulteriore elaborazione in base ai risultati del comando grep che non trova una corrispondenza.
Se vuoi davvero farlo senza impostare URL su una variabile , usa questo metodo:
try
do shell script "grep $(osascript -e 'tell application \"Safari\" to get the URL of current tab of window 1 of application \"Safari\"')" & " /path/to/target/file"
end try
Si noti che in questo caso lo spazio necessario può essere come mostrato, dopo la doppia citazione prima del nomepercorso , oppure può essere inserito dopo le parentesi di chiusura di $(...) e prima della doppia virgola di chiusura prima della e commerciale, es .: ...\"Safari\"') " &