Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1475 connectés 

  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  [Bash] "un truc qui tourne"

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Bash] "un truc qui tourne"

n°673987
nicephore1​7
Un cinglé parmis les fous
Posté le 07-05-2005 à 02:41:30  profilanswer
 

Excusez ce titre un peu bizarre...
 
Je suis en train de rédiger un script bash qui lance un certain nombre de commandes et je lutte avec la gestion de l'affichage.
 
En fait je voudrait faire quelque chose de ce genre:
 
Je lance la commande 1 et j'affiche "Commande 1: " suivi d'un truc qui tourne (succession de / - \ | etc.)
puis je lance la commande 2 et j'affiche "Commande 2: " et le "truc qui tourne"
etc.
 
Donc
1) comment je masque la sortie écran du résultat de commande ?
2) comment j'affiche "le truc qui tourne" ?
 
Merci

mood
Publicité
Posté le 07-05-2005 à 02:41:30  profilanswer
 

n°673988
deather2
Posté le 07-05-2005 à 02:46:35  profilanswer
 

Pour masquer la sortie de la commande:
commande >/dev/null 2>&1
 
Tu peux virer le 2>&1 si tu veux quand meme afficher les erreurs :)
 
Pour le truc qui tourne aucun idee

n°674081
black_lord
Modérateur
Truth speaks from peacefulness
Posté le 07-05-2005 à 12:46:03  profilanswer
 

[:drapo]


---------------
uptime is for lousy system administrators what Viagra is for impotent people - mes unixeries - github me
n°674085
deather2
Posté le 07-05-2005 à 12:53:29  profilanswer
 

Y'a ptet une séquence d'échapement ANSI pour revenir d'un caractère en arrière, et ainsi afficher un caractère different à la même position...
un peu galère mais faisable

n°674090
e_esprit
Posté le 07-05-2005 à 13:18:45  profilanswer
 

man echo :D
 

Code :
  1. #! /bin/sh
  2. echo -n "-"
  3. sleep 1
  4. echo -n -e "\b\\"
  5. sleep 1
  6. echo -n -e "\b|"
  7. sleep 1
  8. echo -n -e "\b/"
  9. sleep 1
  10. echo -n -e "\b-"
  11. sleep 1
  12. echo -n -e "\b\\"
  13. sleep 1
  14. echo -n -e "\b|"
  15. sleep 1
  16. echo -e "\b/"
  17. sleep 1


---------------
Ce n'est point ma façon de penser qui a fait mon malheur, c'est celle des autres.
n°674099
deather2
Posté le 07-05-2005 à 13:28:19  profilanswer
 

excellent :D

n°674102
nicephore1​7
Un cinglé parmis les fous
Posté le 07-05-2005 à 13:37:03  profilanswer
 

Et bien, je suis au moins contant que vous ayez compris ce que je voulais dire...
 
Mais il a encore quelque chose qui m'échappe.... Comment je fait le "truc qui tourne" en même temps que je masque la sortie de mes autres instructions?
 
Je fait un jeu de fonctions?


Message édité par nicephore17 le 07-05-2005 à 13:40:27
n°674118
e_esprit
Posté le 07-05-2005 à 14:10:29  profilanswer
 

La ca se complique... [:thektulu]
 
Deux soluces à ce genre de problème :  
1) utilisation de threads (hum... pas gagné en Bash :whistle:)
2) utiliser la sortie de ta commande pour afficher un des 4 caractères en conséquence.
 
Bref faut voir a quoi ressemble la sortie de tes commandes


---------------
Ce n'est point ma façon de penser qui a fait mon malheur, c'est celle des autres.
n°674122
nicephore1​7
Un cinglé parmis les fous
Posté le 07-05-2005 à 14:16:52  profilanswer
 

e_esprit a écrit :

La ca se complique... [:thektulu]Bref faut voir a quoi ressemble la sortie de tes commandes


 
Aïeuh...
 

Citation :


...
? config.log
? config.status
? Makefile
? Mk/dports.autoconf.mk
? doc/macosx.mtree
? doc/ports.conf
? doc/prefix.mtree
? src/config.h
? src/darwinports1.0/darwinports_autoconf.tcl
? src/darwinports1.0/darwinports_fastload.tcl
? src/pextlib1.0/Pextlib.dylib
? src/port/port
? src/port/portall
? src/port/portindex
? src/port1.0/port_autoconf.tcl
? src/programs/Makefile
.....


 
(CVS Inside)

n°674124
e_esprit
Posté le 07-05-2005 à 14:20:02  profilanswer
 

Quoique j'ai une petite idée, c'est pas très très propre comme soluce, mais ca devrait fonctionner...
 
Je teste et si ca marche, je t'explique :D


---------------
Ce n'est point ma façon de penser qui a fait mon malheur, c'est celle des autres.
mood
Publicité
Posté le 07-05-2005 à 14:20:02  profilanswer
 

n°674125
esox_ch
Posté le 07-05-2005 à 14:22:07  profilanswer
 

Excellent, je me l'etais aussi toujours demandé :D
voila le nouveau sablier que je vais integrer dans tous mes progs :
 

Code :
  1. #! /bin/sh
  2. while true
  3. do
  4. echo -n -e "\b\\"
  5. sleep 1
  6. echo -n -e "\b|"
  7. sleep 1
  8. echo -n -e "\b/"
  9. sleep 1
  10. echo -n -e "\b-"
  11. sleep 1
  12. echo -n -e "\b\\"
  13. sleep 1
  14. echo -n -e "\b|"
  15. sleep 1
  16. echo -n -e "\b/"
  17. sleep 1
  18. done


 
Faudra juste que je virre le true et c'est regler :D


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°674152
e_esprit
Posté le 07-05-2005 à 14:53:01  profilanswer
 

La soluce [:yaisse2]
 

Code :
  1. #! /bin/sh
  2. n=0
  3. activity( )
  4. {
  5. case "$n" in
  6. 0) echo -n -e "\b-"
  7. sleep 0.1
  8. ;;
  9. 1) echo -n -e "\b\\"
  10. sleep 0.1
  11. ;;
  12. 2) echo -n -e "\b|"
  13. sleep 0.1
  14. ;;
  15. 3) echo -n -e "\b/"
  16. sleep 0.1
  17. ;;
  18. esac
  19. ((n=n+1))
  20. ((n=n%4))
  21. }
  22.         
  23. echo -n "Commande 1 :  "
  24. apt-cache search bidon >/dev/null 2>&1 &
  25. ps | grep -sq apt-cache
  26. while test `echo $?` -eq 0 
  27. do
  28.     activity
  29.     ps | grep -sq apt-cache
  30. done
  31. echo -e "\bdone."
  32. echo -n "Commande 2 :  "
  33. find / -name *.txt  >/dev/null 2>&1 &
  34. ps | grep -sq find
  35. while test `echo $?` -eq 0
  36. do
  37.     activity
  38.     ps | grep -sq find
  39. done   
  40. echo -e "\bdone."


 
Bon faut remplacer les apt-cache et find par tes propres commandes, la c'est pour tester  :D


---------------
Ce n'est point ma façon de penser qui a fait mon malheur, c'est celle des autres.
n°674154
esox_ch
Posté le 07-05-2005 à 14:58:52  profilanswer
 

Tiens interessant tout ça... Vais la garder :D


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°674166
nicephore1​7
Un cinglé parmis les fous
Posté le 07-05-2005 à 15:10:30  profilanswer
 

Chic, dès que j'ai fini mon script PHP (rien à voir) je test.

n°675268
matafan
Posté le 09-05-2005 à 23:35:10  profilanswer
 

"while :" c'est plus court que "while true". Et ca fait tout de suite le gars qui maitrise.

n°675269
esox_ch
Posté le 09-05-2005 à 23:37:50  profilanswer
 

Sauf que While True ça fait tout de suite le mec qui arrive d'un langage evolué (en l'occurence Java) dont le compileur sort la pelle a clou si t'essaie de le feinter avec ce genre de truc


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°676452
matafan
Posté le 12-05-2005 à 00:39:28  profilanswer
 

esox_ch a écrit :

Sauf que While True ça fait tout de suite le mec qui arrive d'un langage evolué (en l'occurence Java)


Moi j'en serais pas fier ;) Et puis ":" c'est pas une feinte, c'est un bultin du shell :
 

: (a colon)
    : [arguments]
    Do nothing beyond expanding arguments and performing redirections. The return status is zero.

n°676523
Zaib3k
Posté le 12-05-2005 à 10:18:02  profilanswer
 

pour le truc qui tourne il y a aussi la commande tput qui permet d'afficher ce qu'on veux aux coordonnées que l'on veux.


---------------
Le droit à la différence s'arrête là où ça commence à m'emmerder sérieusement.
n°686041
aspegic500​mg
Posté le 31-05-2005 à 13:50:07  profilanswer
 

super sympa ca, je garde dans un coin, merci :jap:


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  [Bash] "un truc qui tourne"

 

Sujets relatifs
[bash] Compte le nombre de caractères ds 1 variable ?[bash] activer l'auto completion apres sudo
Taille sur le disque en bashcommandes bash: assembler deux commandes.
Test d'égalité en bash ?[bash] Comment utiliser return pour retourner une valeur ?
script bash qui planteexecuter rsh dans un script bash
[bash] chown dans un script[bash] lancer une appli sur un autre ecran
Plus de sujets relatifs à : [Bash] "un truc qui tourne"


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR