2 votes

Ouvrez une URL avec des arguments de requête paramétrés (encodage d'URL)

Je dois invoquer une URL personnalisée pour une application GUI macOS à partir d'une commande de terminal (shell).

Je dois également pouvoir transmettre des arguments à la section de requête de l'URL.

Cela pourrait ressembler à ceci:

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

Le problème est que je dois d'abord encoder en URL path et what. Comment puis-je accomplir cela avec des commandes intégrées? Il ne devrait pas être nécessaire d'installer des outils supplémentaires pour cela et cela devrait fonctionner sur macOS 10.11 et ultérieur.

J'aimerais aussi que ce soit concis. Il s'agit d'instructions pour d'autres utilisateurs (non familiarisés avec le Terminal) pour invoquer l'application via un court script shell, par exemple à partir d'outils d'automatisation.

Ainsi, de longs scripts bash qui convertissent les chaînes "à la main" ne sont pas vraiment un bon résultat pour moi. Idéalement, la commande open devrait être en une seule ligne.

1voto

Jose Chavez Points 645

Vous avez beaucoup d'exigences, ce qui conduit à une solution un peu complexe :

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")

Cela utilise python, qui est préinstallé sur macOS 10.11 et ultérieur (y compris Big Sur). C'est aussi une ligne de commande (bien que longue).

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X