En primer lugar, su primera línea de código tell application "Safari" to set the content of var1 to URL of active tab of front window
ni siquiera compila. El error es " Error de sintaxis Un nombre de clase no puede ir después de este identificador", señalando active tab
. Así que, do shell script "grep " & var1 & "path-to-my-file/file"
¡no podría funcionar como está escrito de todos modos!
Una forma adecuada de conseguir el URL
sería:
tell application "Safari" to get the URL of current tab of window 1 of application "Safari"
O bien, para establecerlo en un variable usar:
tell application "Safari" to set theURL to (get the URL of current tab of window 1 of application "Safari")
Así, las dos primeras líneas de código en su pregunta funcionaría si se utiliza como:
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
-
Tenga en cuenta que hay un espacio después de la comilla doble antes de /path/to/target/file
y esto espacio es necesario.
-
También el código está envuelto en un try
declaración para atrapar cualquier error. Aunque tendría que añadir un código para procesar el error(es) en consecuencia utilizando un on error
manipulador . Mientras que el try
declaración ocultará un error Utilizándolo junto con un on error
manipulador será necesario si grep
no encuentra una coincidencia y desea realizar un procesamiento adicional basado en los resultados del grep
comando no encontrar una coincidencia.
Si realmente quieres hacerlo sin poner el URL
a un variable Entonces utilice este método:
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
Tenga en cuenta que en este caso la espacio puede ser como se muestra, después de la doble comilla antes del ruta de acceso o puede colocarse después del paréntesis de cierre de $(...)
y antes de la comilla doble de cierre antes del ampersand, por ejemplo ...\"Safari\"') " &