2 votos

Abrir una URL con argumentos de consulta parametrizados (URL-encode)

Necesito invocar una URL personalizada para una aplicación GUI de MacOS desde un comando de terminal (shell).

También necesito poder pasar argumentos a la sección de consulta de la URL.

Podría ser así:

path=/Volumes/MyDisk
what="some text"
open fafapp://find?loc=$path&inp=$what

El problema es que necesito codificar la URL path y what primero. ¿Cómo puedo lograr esto con los comandos incorporados? No debería ser necesario instalar herramientas adicionales para esto y debería funcionar en MacOS 10.11 y posteriores.

También me gustaría que fuera consisa. Es para dar instrucciones a otros usuarios (no expertos en Terminal) para invocar la aplicación a través de un breve shell script, por ejemplo, desde herramientas de automatización.

Así, los largos bash scripts que convierten las cadenas "a mano" no son realmente un buen resultado para mí. Lo ideal sería que el open sería un comando de una sola línea.

1voto

Jose Chavez Puntos 645

Tiene muchos requisitos, lo que hace que la solución sea un poco complicada:

open fafapp://find?loc=$(python -c "import urllib, sys; print urllib.quote(sys.argv[1])" "$path")&inp=$(python -c "import urllib, sys; print urllib.quote(sys.argv[1])" "$what")

Esto utiliza Python, que está preinstalado en MacOS 10.11 y posteriores (incluyendo Big Sur). También es de una sola línea (aunque larga).

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X