gauret Posted February 16, 2005 Share Posted February 16, 2005 comme je suis dans mon jour de bonté, j'en ai une deuxième, où cette fois si le bash est autorisé ... j'avais besoin l'autre jour de dater des événements à la seconde près ... je voulais donc faire une boucle en shell qui m'affiche l'heure en temps réél sur une seule ligne (qui ne scroll pas) et que je pouvais néanmoins faire scroller à la main pour noter mes événements. En gros une sorte de chrono, à chaque fois que j'appuie sur entrée ça m'enregistre l'heure : # <la super ligne de shell> 22:19:14 [appui sur entrée à 22:19:14] 22:19:57 [appui sur entrée à 22:19:57] 22:20:02 .. 22:20:03 le tout en une seule ligne de commande relativement simple pour la taper vite et ne pas charger la machine... indice : la ligne de commande fait ~ 60 caractères ... 2 solutions : - soit un truc à base de while read; do date +%X; done - soit, plus classe je trouve, tu règles ton prompt pour qu'il affiche l'heure, avec la variable PS1 : export PS1="\t [\u@\h \w]\$ " Marrant :) Mais j'ai pas très bien compris ta question Sandeman, c'est bien ça que tu voulais faire ? Link to post Share on other sites
gauret Posted February 16, 2005 Share Posted February 16, 2005 Ah, je pense avoir compris. Et ça : while true; do date=`date +%X`; echo -n $date; sleep 1; echo -n -e '\r'; done ? Link to post Share on other sites
lorinc Posted February 16, 2005 Share Posted February 16, 2005 la seconde: while date '+%k:%M:%S'; do sleep 1; printf "\b\b\b\b\b\b\b\b"; done en très porc... Link to post Share on other sites
gauret Posted February 16, 2005 Share Posted February 16, 2005 la seconde: while date '+%k:%M:%S'; do sleep 1; printf "\b\b\b\b\b\b\b\b"; done en très porc... marche pas, ça scrolle... Link to post Share on other sites
lorinc Posted February 16, 2005 Share Posted February 16, 2005 ça dépend des terminaux... avec aterm, ça marche (printf "\b" mais pas echo -ne '\r') avec konsole, non... Link to post Share on other sites
Sandeman Posted February 17, 2005 Share Posted February 17, 2005 yes ouragan :) Link to post Share on other sites
ouragan Posted February 17, 2005 Share Posted February 17, 2005 d'ailleurs le truc con pour remplir le /home yes bonjour >> bonjour.txt et le laisser tourner :) Link to post Share on other sites
Sandeman Posted February 17, 2005 Share Posted February 17, 2005 un poil plus rapide ? cat /dev/null > toto.txt Link to post Share on other sites
lorinc Posted February 17, 2005 Share Posted February 17, 2005 et pour ton horloge ? je donne ma langue au pingouin Link to post Share on other sites
gauret Posted February 17, 2005 Share Posted February 17, 2005 et pour ton horloge ?je donne ma langue au pingouin Elle marche pas ma mienne ? Link to post Share on other sites
AigleDor Posted February 17, 2005 Share Posted February 17, 2005 un poil plus rapide ? cat /dev/null > toto.txt /dev/null est toujours vu comme un fichier vide en lecture Link to post Share on other sites
tuXXX Posted February 18, 2005 Share Posted February 18, 2005 /dev/null est toujours vu comme un fichier vide en lecture ouais... /dev/zero, /dev/random ou /dev/hw_random font mieux l'affaire :8 ou yes > ~/rien Link to post Share on other sites
lorinc Posted February 18, 2005 Share Posted February 18, 2005 Elle marche pas ma mienne ? ben pas chez moi en tout cas... je pense que c'est tres spécifique à TERM, non? Link to post Share on other sites
Sandeman Posted February 18, 2005 Share Posted February 18, 2005 effectivement j'ai fourché ... /dev/zero oui, l'horloge, alors :) Gagnant : Gauret ! (désolé j'avais zappé ton post) ma version est assez proche : while (true) do echo -ne "`date +"%T"`\b\b\b\b\b\b\b\b"; sleep 1; done Link to post Share on other sites
lorinc Posted February 18, 2005 Share Posted February 18, 2005 effectivement... je croyais qu'en mettant les \b avec le date, l'heure ne s'afficherais jamais (tout de suite effacée), mais en fait, \b recule d'un caractère sans l'effacer, donc... d'ailleurs, c'est plus court comme ça : while echo -ne "`date +"%T"`\r"; do sleep 1; done Link to post Share on other sites
lorinc Posted February 25, 2005 Share Posted February 25, 2005 tant qu'il n'y a personne, une ultra facile : voilà, je suis un maniac de la photo, et depuis que j'ai un super appareil numérique, je prends énormement de photos. En plus, je suis devenus fou de l'option 'rafale', entre 2 et 3 images par seconde. j'ai donc des dossiers contenant 50 images prise à la suite et j'aimerais faire un montage qui me les resize toutes en 400x400 et qui mets la date du traitement en bas et surtout qui me fait un gif animé du résultat. par chance, mon appareil nomme mes photos par ordre croissant : img_0018.jpg par exemple donc je résume, il faut : 1. prendre toutes les photos d'un répertoire. 2. les resizer en 400x400 3. ajouter un texte contenant la date du traitement centré en bas 4. en faire un gif animé a raison de trois images par seconde (à peu près hein) 5. le tout en UNE ligne de shell, parce que je suis avare en touche tapée sur mon clavier à vos marque, près, partez! Link to post Share on other sites
Duke98 Posted February 25, 2005 Share Posted February 25, 2005 le resize, l'ajout de texte et la création de gif animée se fait sans problème avec image magic..... mais alors le détail.... plouf au passage il serait mieux de faire du mng...... avoir la qualité d'image du png et l'annimation en plus ca le fait edit: c'est la première fois que je comprends la question, ca s'arrange Link to post Share on other sites
lorinc Posted February 25, 2005 Share Posted February 25, 2005 oui, mais c'est pas lisible avec un navigateur... expérience inside Link to post Share on other sites
Duke98 Posted February 25, 2005 Share Posted February 25, 2005 oui, mais c'est pas lisible avec un navigateur... expérience inside heu le mng passe sous firefox... mais il faut peut etre un plugin Link to post Share on other sites
lorinc Posted February 25, 2005 Share Posted February 25, 2005 here it is: http://extensionroom.mozdev.org/more-info.php/mngsupport ça ne me donne pas ma ligne d'imageMagick Link to post Share on other sites
tuXXX Posted February 25, 2005 Share Posted February 25, 2005 5. le tout en UNE ligne de shell, parce que je suis avare en touche tapée sur mon clavier Un Makefile et c'est fini... il peut y avoir 50étapes à faire, un "make" et c'est fini Link to post Share on other sites
Sandeman Posted February 25, 2005 Share Posted February 25, 2005 c'est une méchante ligne de l'espace avec convert à l'arrache, sans soigner l'esthétique sur la date : for i in `ls` do; fdate=`ls -l $i | awk '{print $6 " " $7 " " $8}'`; convert -sample 400x400 -font helvetica -fill blue -draw "text 100,100 $fdate" $i $i.png; done; convert -delay 33 *.png anim.mng; rm *.png Link to post Share on other sites
lorinc Posted February 25, 2005 Share Posted February 25, 2005 Un Makefile et c'est fini... il peut y avoir 50étapes à faire, un "make" et c'est fini pas de fichier à écrire, juste une ligne. donc pas de Makefile. c'est une méchante ligne de l'espace avec convertà l'arrache, sans soigner l'esthétique sur la date : for i in `ls` do; fdate=`ls -l $i | awk '{print $6 " " $7 " " $8}'`; convert -sample 400x400 -font helvetica -fill blue -draw "text 100,100 $fdate" $i $i.png; done; convert -delay 33 *.png anim.mng; rm *.png oui, ce n'est qu'une méchante ligne de convert, alors pourquoi s'embetter à en faire plusieurs, avec des for, etc... on s'en approche, mais s'est plus simple Link to post Share on other sites
tuXXX Posted February 25, 2005 Share Posted February 25, 2005 Bon, après quelques tests, le mieux que j'ai trouvé, c'est ça : $ convert -delay 33 -size 400x400 -resize 400x400! -gravity "Center" -draw "text 0,190 \"$(date +%D)\"" *.jpg out.gif (et en plus, ça consomme pas 1Go de ram, ce qui est le cas si on ne met que le resize...) (si on veut garder l'aspect 4/3, il faut enlever le point d'exclamation et modifier la position du texte...) (pour la date y'a moyen de changer la forme) (et aussi la couleur du texte) EDIT : remplacer out.gif par out.mng pour faire du mng Link to post Share on other sites
lorinc Posted February 25, 2005 Share Posted February 25, 2005 un point pour tuXXX, avec en remplaçant peut-être le gravity center par un gravity south et text 0,0 comme quoi, je l'avais dis que c'était facile Link to post Share on other sites
Recommended Posts
Archived
This topic is now archived and is closed to further replies.