Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 04/04/2020, à 12:26

gigiair

[Résolu] script pour lancer une commande sur une url

J'ai besoin de votre aide, je voudrais écrire un script qui exécute une commande du genre

emacsclient -e '(eww "https://forum.ubuntu-fr.org/search.php?search_id=136198599")'

avec l'url en paramètre variable

J'ai composé un petit script dont la commande est

exec echo emacsclient -e \'\(eww \"$1\"\)\'

Qui avec l'argument  https://forum.ubuntu-fr.org/post.php?fid=78
me renvoie

emacsclient -e '(eww "https://forum.ubuntu-fr.org/post.php?fid=78")'
Commande qui, copiée littéralement, exécute bien ce que je désire.
(Pour votre information, ça lance  eww ,un browser en mode texte d'Emacs en mode serveur, sur l'url précisée.)

Seulement voilà, si j'enlève le echo dans le script, j'ai le message d'erreur

*ERROR*: End of file during parsing

Comme vous pouvez le constater, je suis plutôt débutant en bash.

Dernière modification par gigiair (Le 04/04/2020, à 16:12)


--
JJR.

Hors ligne

#2 Le 04/04/2020, à 13:38

kamaris

Re : [Résolu] script pour lancer une commande sur une url

Je ne connais pas emacsclient, donc je ne sais pas si la syntaxe de ce que tu lui passes à exécuter par l'option -e est correcte, mais pour ce qui est du bash, le exec est inutile, et tu dois pouvoir mettre dans ton script

emacsclient -e "(eww '$1')"

Hors ligne

#3 Le 04/04/2020, à 14:13

gigiair

Re : [Résolu] script pour lancer une commande sur une url

ça n'a pas d'importance si tu ne connaisse pas emacsclient
la commande

emacs -q --eval '(eww "https://forum.ubuntu-fr.org/search.php?search_id=136198599")'

a un efffet équivalent à

emacsclient -e '(eww "https://forum.ubuntu-fr.org/search.php?search_id=136198599")'

mais le temps de lancement d'Emacs peut être beaucoup plus long, surtout sans l'option -q . Quand il n'y  a pas d'Emacs lancé en mode serveur  c'est cette dernière commande qui doit être lancée. Mon script prévoira ce cas, mais pour l'instant ce n'est pas le sujet.
Je penche pour un problème de caractère devant être ou non protégés, mais je suis un peu sec sur ce sujet en bash.


--
JJR.

Hors ligne

#4 Le 04/04/2020, à 14:15

kamaris

Re : [Résolu] script pour lancer une commande sur une url

As-tu essayé la commande donnée en #2 ?

Hors ligne

#5 Le 04/04/2020, à 14:33

gigiair

Re : [Résolu] script pour lancer une commande sur une url

kamaris a écrit :

As-tu essayé la commande donnée en #2 ?

Oui, bien sûr, c'est même par là que j'ai commencé puis j'ai précédé la commande d'un 'echo' pour vérifier que la commande envoyée était bonne, puis j'ai ajouté un exec sans que ça ne produise aucun changement

~/bin $ 
~/bin $ # avec echo pour tester la commande envoyée
~/bin $ ./ewwclient.sh https://forum.ubuntu-fr.org/search.php?search_id=136198599
emacsclient -e '(eww "https://forum.ubuntu-fr.org/search.php?search_id=136198599")'
~/bin $ # sans echo
~/bin $ ./ewwclient.sh https://forum.ubuntu-fr.org/search.php?search_id=136198599
*ERROR*: End of file during parsing
~/bin $ 

--
JJR.

Hors ligne

#6 Le 04/04/2020, à 14:46

kamaris

Re : [Résolu] script pour lancer une commande sur une url

Non, je te parle de la commande que j'ai donnée dans mon post #2 :

emacsclient -e "(eww '$1')"

L'usage des guillemets y est différent de celui que tu fais (les guillemets simples dans les guillemets doubles, et pas l'inverse).
Tu peux aussi mettre

#!/bin/bash -x

au début de ton script, pour avoir un traçage de ce qui est effectivement exécuté.

Hors ligne

#7 Le 04/04/2020, à 16:10

gigiair

Re : [Résolu] script pour lancer une commande sur une url

J'ai fini par trouver, grâce à toi.
l'url de la commande doit être quotée avec des doubles, donc la commande qui va bien, c'est

emacsclient -e "(eww \"$1\")"

Merci.

Dernière modification par gigiair (Le 04/04/2020, à 21:35)


--
JJR.

Hors ligne