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\"') " &