[Bash] "un truc qui tourne"

"un truc qui tourne" [Bash] - Codes et scripts - Linux et OS Alternatifs

Marsh Posté le 07-05-2005 à 02:41:30    

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

Reply

Marsh Posté le 07-05-2005 à 02:41:30   

Reply

Marsh Posté le 07-05-2005 à 02:46:35    

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

Reply

Marsh Posté le 07-05-2005 à 12:46:03    

[:drapo]


---------------
uptime is for lousy system administrators what Viagra is for impotent people - mes unixeries - github me
Reply

Marsh Posté le 07-05-2005 à 12:53:29    

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

Reply

Marsh Posté le 07-05-2005 à 13:18:45    

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.
Reply

Marsh Posté le 07-05-2005 à 13:28:19    

excellent :D

Reply

Marsh Posté le 07-05-2005 à 13:37:03    

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
Reply

Marsh Posté le 07-05-2005 à 14:10:29    

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.
Reply

Marsh Posté le 07-05-2005 à 14:16:52    

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)

Reply

Marsh Posté le 07-05-2005 à 14:20:02    

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.
Reply

Marsh Posté le 07-05-2005 à 14:20:02   

Reply

Marsh Posté le 07-05-2005 à 14:22:07    

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
Reply

Marsh Posté le 07-05-2005 à 14:53:01    

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.
Reply

Marsh Posté le 07-05-2005 à 14:58:52    

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
Reply

Marsh Posté le 07-05-2005 à 15:10:30    

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

Reply

Marsh Posté le 09-05-2005 à 23:35:10    

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

Reply

Marsh Posté le 09-05-2005 à 23:37:50    

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
Reply

Marsh Posté le 12-05-2005 à 00:39:28    

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.

Reply

Marsh Posté le 12-05-2005 à 10:18:02    

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.
Reply

Marsh Posté le 31-05-2005 à 13:50:07    

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

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed