En primer lugar, ¡tu 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! Se produce un error con " Error de sintaxis Un nombre de clase no puede ir detrás de este identificador". apuntando a active tab
. Por lo tanto, do shell script "grep " & var1 & "path-to-my-file/file"
no podría funcionar como está escrito de todos modos.
Una forma correcta de obtener URL
sería:
tell application "Safari" to get the URL of current tab of window 1 of application "Safari"
O para establecerlo en una variable , use:
tell application "Safari" to set theURL to (get the URL of current tab of window 1 of application "Safari")
Por lo tanto, las primeras dos líneas de código en tu pregunta funcionarán si se usan 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
-
Note que hay un espacio después de la comilla doble antes de /path/to/target/file
y este espacio es necesario.
-
También el código está envuelto en una declaración try
para atrapar cualquier error. Aunque necesitaría agregar código adicional para procesar el error (s) en consecuencia usando un controlador on error
. Si bien la declaración try
ocultará un error , será necesario utilizarlo junto con un controlador on error
si grep
no lo hace. no encuentra una coincidencia y desea realizar un procesamiento adicional basado en los resultados del comando grep
que no encuentra una coincidencia.
Si realmente quieres hacerlo sin configurar el URL
a una variable , usa 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, el espacio necesario puede ser el que se muestra, después de la comilla doble antes del nombre de ruta , o se puede colocar después del paréntesis de cierre de $(...)
y antes de la comilla doble final antes del símbolo, por ejemplo: ...\"Safari\"') " &