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 29/06/2016, à 13:42

argolance

Commande en console/commande bash/sh? [RÉSOLU]

Bonjour,
Voilà: si on tape directement en console:

curl http://wttr.in

... on obtient un super petit tableau affichant la météo sur deux jours..
Maintenant si je fais un script bash ou sh contenant cette ligne:

#!/bin/sh
rxvt -e curl http://wttr.in

La fenêtre de la console s'ouvre un quart de seconde puis se ferme sans rien afficher...
Ou encore ces lignes:

#!/bin/sh
echo "`curl http://wttr.in`" > /root/test
rxvt -e vi /root/test

Cette fois, j'ai bien le texte mais la mise en forme originale est perdue et le tableau absolument illisible.
Que faire?
Merci de votre attention.

Cordialement.

Dernière modification par argolance (Le 04/07/2016, à 13:11)

Hors ligne

#2 Le 29/06/2016, à 14:28

pingouinux

Re : Commande en console/commande bash/sh? [RÉSOLU]

Bonjour,
Au lieu de

rxvt -e vi /root/test

essaye

cat /root/test

Hors ligne

#3 Le 29/06/2016, à 14:28

argolance

Re : Commande en console/commande bash/sh? [RÉSOLU]

Merci.

MicP a écrit :

change vi par cat :

rxvt -e cat /root/test

Sinon, les codes d'échappement permettant la coloration ne seront pas interprétés

J'ai d'abord essayé avec cat mais il ne se passe rien, c'est pour ça que je me suis rabattu sur vi qui au moins, affiche le contenu du fichier texte, même si la mise en forme est perdue.
J'aurais pu formuler ma question:
Comment transposer dans un script bash la commande directement tapée/exécutée en console.:

curl http://wttr.in

pour obtenir le même résultat.
Ou inversement, comment convertir le texte redirigé vers le fichier /root/test pour retrouver la mise en forme originale en tableau:

#!/bin/sh
echo "`curl http://wttr.in`" > /root/test

Dernière modification par argolance (Le 29/06/2016, à 14:33)

Hors ligne

#4 Le 29/06/2016, à 14:35

pingouinux

Re : Commande en console/commande bash/sh? [RÉSOLU]

Sinon, curl n'est pas installé chez moi, mais ceci fonctionne :

wget -O- http://wttr.in

Hors ligne

#5 Le 29/06/2016, à 14:44

MicP

Re : Commande en console/commande bash/sh? [RÉSOLU]

#!/bin/sh
rxvt -hold -geometry 126x42 -e curl http://wttr.in

C'était l'option hold de rxvt qui manquait.
Je me suis arrangé pour que la taille de la fenêtre permette d'afficher la page correctement, par défaut, elle était trop petite.

Il me reste à trouver les options pour que les couleurs soient prises en compte.
EDIT: C'est simplement rxvt qui n'accepte pas toute la palette de couleurs.

Dernière modification par MicP (Le 29/06/2016, à 15:02)

Hors ligne

#6 Le 29/06/2016, à 14:49

argolance

Re : Commande en console/commande bash/sh? [RÉSOLU]

Merci!

pingouinux a écrit :

Sinon, curl n'est pas installé chez moi, mais ceci fonctionne :

wget -O- http://wttr.in

Directement tapées en console, les deux commandes fonctionnent et affichent bien le tableau météo.
Ce que je voudrais c'est parvenir à afficher ce tableau dans une fenêtre de console mais par l'intermédiaire d'un fichier bash contenant une commande fonctionnelle du genre:

#!/bin/sh
rxvt -e wget -O- http://wttr.in
#!/bin/sh
rxvt -e curl http://wttr.in

Mais ces deux-là en tout cas, ne fonctionnent pas!

Hors ligne

#7 Le 29/06/2016, à 14:59

argolance

Re : Commande en console/commande bash/sh? [RÉSOLU]

MicP a écrit :
#!/bin/sh
rxvt -hold -geometry 126x42 -e curl http://wttr.in

C'était l'option hold de rxvt qui manquait.
Je me suis arrangé pour que la taille de la fenêtre permette d'afficher la page correctement.

Il me reste à trouver les options pour que les couleurs soient prises en compte.

Ah oui oui c'est ça! smile Et en utilisant urxvt a lieu de rxvt, j'ai les couleurs en fait.
Ce n'est pas la première fois que je suis confronté à ce problème de fenêtre de console non persistante: l'option -hold me manquait.
Merci, belle trouvaille.

Hors ligne

#8 Le 29/06/2016, à 15:03

MicP

Re : Commande en console/commande bash/sh? [RÉSOLU]

MicP a écrit :

…Il me reste à trouver les options pour que les couleurs soient prises en compte.…

argolance a écrit :

…Et en utilisant urxvt a lieu de rxvt, j'ai les couleurs en fait. …

Impec ! big_smile

Dernière modification par MicP (Le 29/06/2016, à 15:05)

Hors ligne

#9 Le 29/06/2016, à 15:23

argolance

Re : Commande en console/commande bash/sh? [RÉSOLU]

urxvt affiche des couleurs mais pas les couleurs, malheureusement.
Facile à voir avec la lune:
Maintenant, s'il y a moyen de les avoir, ce serait encore bien mieux, mais là, ça me dépasse totalement.

[EDIT] Tout est juste et parfait!
Merci beaucoup.
Cordialement.

Dernière modification par argolance (Le 29/06/2016, à 15:59)

Hors ligne

#10 Le 29/06/2016, à 16:03

MicP

Re : Commande en console/commande bash/sh? [RÉSOLU]

C'est quand même possible en utilisant gnome-terminal :

#!/bin/sh
gnome-terminal --geometry=126x42 -x bash -c 'curl http://wttr.in; read'

Avec read la fenêtre reste ouverte et attends l'appui sur une touche pour se fermer.
Et toutes les couleurs s'affichent.

Dernière modification par MicP (Le 29/06/2016, à 16:07)

Hors ligne

#11 Le 29/06/2016, à 16:25

argolance

Re : Commande en console/commande bash/sh? [RÉSOLU]

Je ne suis pas sur Ubuntu et n'ai donc pas le gnome-terminal (et donc les utilisateurs de ToOpPy non plus!). Dommage parce que c'est bien pour justement régler le problème de la fenêtre qui, n'acceptant plus aucune commande au clavier, ne peut se fermer qu'avec le bouton de la fenêtre. Et lorsque cette fenêtre est transparente et sans décorations (c'est le cas dans mon script), c'est gênant. J'ai donc choisi de faire un petit bouton en haut et à gauche de l'écran, qui permet de fermer la fenêtre et aussi, tant qu'à faire, de choisir d'afficher Temps/Lune...
Encore merci.
(chaque fois je m'esbaudis de la réactivité de ce Forum) smile

Hors ligne

#12 Le 29/06/2016, à 16:53

MicP

Re : Commande en console/commande bash/sh? [RÉSOLU]

…Dommage parce que c'est bien pour justement régler le problème de la fenêtre qui, n'acceptant plus aucune commande au clavier, ne peut se fermer qu'avec le bouton de la fenêtre.…

Si tu préfère utiliser le clavier :

En appuyant sur n'importe quelle autre touche que q tu mettra à jour la page affichée.
Si tu appuie la touche q le fenêtre se fermera.

#!/bin/sh
rxvt -geometry 126x43 -e bash -c 'while [ "${REPLY}" != "q" ];do curl http://wttr.in;echo -e "\nAppuyez sur \"q\" pour quitter.";read -n1;clear;done;exit'

Dernière modification par MicP (Le 29/06/2016, à 17:17)

Hors ligne

#13 Le 29/06/2016, à 17:07

argolance

Re : Commande en console/commande bash/sh? [RÉSOLU]

Alors là, c'est [RÉSOLU] de chez [RÉSOLU]!
Il est vrai qu'on peut en faire des choses en console, à condition de connaitre, évidemment...
Et aujourd'hui j'ai appris beaucoup.
Merci.

Hors ligne

#14 Le 29/06/2016, à 17:11

argolance

Re : Commande en console/commande bash/sh? [RÉSOLU]

Dernière petite chose, si je peux me permettre, pendant qu'on y est: si je veux rajouter une ou deux lignes en haut de la fenêtre pour y insérer un titre par exemple, comment faire?

Hors ligne

#15 Le 29/06/2016, à 17:44

MicP

Re : Commande en console/commande bash/sh? [RÉSOLU]

…rajouter une ou deux lignes en haut de la fenêtre…

#!/bin/sh
LienVersPage="http://wttr.in"

Ligne1="Source : ${LienVersPage}"
Ligne2="Ligne numéro 2"

rxvt -geometry 126x46 -e bash -c 'while [ "${REPLY}" != "q" ];do echo -e "'"${Ligne1}\n${Ligne2}\n"'";curl "'"${LienVersPage}"'";echo -e "\nAppuyez sur \"q\" pour quitter.";read -n1;clear;done;exit'

(j'ai dû augmenter le nombre de lignes de la fenêtre à 46)

Dernière modification par MicP (Le 29/06/2016, à 18:30)

Hors ligne

#16 Le 29/06/2016, à 18:18

argolance

Re : Commande en console/commande bash/sh? [RÉSOLU]

cool cool cool

Dernière modification par argolance (Le 29/06/2016, à 18:18)

Hors ligne