Como el open
comando no produce los resultados deseados, he aquí una adaptación de mi respuesta R: Abrir una URL en Safari con navegación privada que le permitirá abrir fácilmente un URL de la línea de comandos en un nuevo ficha de un Safari ventana Si se trata de un ficha con eso URL ya existe..
Funciona con independencia de que Safari se está ejecutando, y si se está ejecutando, si un ventana ya existe.
En Terminal , ejecute lo siguiente comando compuesto :
f='openurl'; touch "$f"; open -e "$f"; chmod +x "$f"
Copiar y pegar el ejemplo AppleScript código que se muestra a continuación, en el openurl documento y luego guárdalo.
A continuación, debe mover el openurl
shell script a un directorio situado dentro del de la cáscara PATH
.
Lo he trasladado a /usr/local/bin
Por ejemplo,..:
sudo mv -v openurl /usr/local/bin/
Ahora desde Terminal Puedo abrir el mismo URL en un nuevo ficha Safari si un ficha con eso URL ya existe.
Escribiendo sólo el nombre del ejecutable nombre sin ninguna argumentos muestra cómo se puede utilizar, por ejemplo:
% openurl
Missing URL...
Example: openurl 'https://www.example.com'
%
Ejemplo AppleScript código :
#!/usr/bin/osascript
on run args
if args is {} then return ¬
"Missing URL..." & linefeed & ¬
"Example: " & (name of me) & space & "'https://www.example.com'"
set theURL to first item of args as string
if not running of application id "com.apple.Safari" then
tell application id "com.apple.Safari"
activate
set i to 0
repeat until exists window 1
delay 0.1
set i to i + 1
if i 40 then return
end repeat
set URL of current tab of window 1 to theURL
end tell
else
tell application id "com.apple.Safari"
if exists window 1 then
tell window 1 to set URL of (make new tab) to theURL
else
make new document with properties {URL: theURL}
end if
end tell
end if
end run
Nota: El <em>ejemplo </em><strong>AppleScript </strong><em>código </em>es sólo eso y sin ningún tipo de inclusión <em>tratamiento de errores </em>no contiene ningún otro <em>tratamiento de errores </em>según corresponda. Corresponde al usuario añadir cualquier <em>tratamiento de errores </em>como sea apropiado, necesario o deseado. Eche un vistazo a la <a href="https://developer.apple.com/library/archive/documentation/AppleScript/Conceptual/AppleScriptLangGuide/reference/ASLR_control_statements.html#//apple_ref/doc/uid/TP40000983-CH6g-129232" rel="nofollow noreferrer"><strong>intente </strong></a><em>declaración </em>y <a href="https://developer.apple.com/library/archive/documentation/AppleScript/Conceptual/AppleScriptLangGuide/reference/ASLR_control_statements.html#//apple_ref/doc/uid/TP40000983-CH6g-129657" rel="nofollow noreferrer"><strong>error </strong></a><em>declaración </em>en el <a href="https://developer.apple.com/library/archive/documentation/AppleScript/Conceptual/AppleScriptLangGuide/introduction/ASLR_intro.html" rel="nofollow noreferrer"><strong>Guía del lenguaje AppleScript </strong></a>. Véase también, <a href="https://developer.apple.com/library/archive/documentation/AppleScript/Conceptual/AppleScriptLangGuide/reference/ASLR_error_xmpls.html#//apple_ref/doc/uid/TP40000983-CH221-SW1" rel="nofollow noreferrer"><strong>Trabajar con errores </strong></a>. Además, el uso de la <a href="https://developer.apple.com/library/archive/documentation/AppleScript/Conceptual/AppleScriptLangGuide/reference/ASLR_cmds.html#//apple_ref/doc/uid/TP40000983-CH216-SW10" rel="nofollow noreferrer"><strong>retraso </strong></a><em>comando </em>puede ser necesario entre eventos cuando sea apropiado, por ejemplo <code>delay 0.5</code> con el <em>valor </em>de la <em>retraso </em>ajustado apropiadamente.