nonas Posté(e) le 24 septembre 2005 Partager Posté(e) le 24 septembre 2005 Humm tu viens de me faire découvrir un bug... merci Alors oui ça marche avec tr -d , mais est-ce mieux de refaire appel à sed (déjà utiliser avant) ou d'appeler tr ? Qu'est-ce qui est le plus léger ? La ligne que j'aimerai arriver à grepper à chaque fois ressemble à ça : Project: 1850 (Run 25, Clone 106, Gen 0) Lien vers le commentaire Partager sur d’autres sites More sharing options...
tuXXX Posté(e) le 24 septembre 2005 Partager Posté(e) le 24 septembre 2005 Alors oui ça marche avec tr -d , mais est-ce mieux de refaire appel à sed (déjà utiliser avant) ou d'appeler tr ? Qu'est-ce qui est le plus léger ? à mon avis tr est beaucoups plus léger (et rapide) La ligne que j'aimerai arriver à grepper à chaque fois ressemble à ça : Project: 1850 (Run 25, Clone 106, Gen 0) RUN=$(grep -i run $1/FAHlog.txt | tail -n 1 | awk {'print $5'} | sed -e "s/,//") CLONE=$(grep -i clone $1/FAHlog.txt | tail -n 1 | awk {'print $7'} | sed -e "s/,//") GEN=$(grep -i gen $1/FAHlog.txt | tail -n 1 | awk {'print $9'} | sed -e "s/)//") RUN=$(grep Run $1/FAHlog.txt | tail -n 1 | tr '(,)' ' ' | awk {'print $4'}) CLONE=$(grep Clone $1/FAHlog.txt | tail -n 1 | tr '(,)' ' ' | awk {'print $6'}) CLONE=$(grep Gen $1/FAHlog.txt | tail -n 1 | tr '(,)' ' ' | awk {'print $8'}) 1) à mon avis "grep -i" est plus lent que "grep" 2) on change "(", "," et ")" en espace 4) on utilise un awk avec -F " " (par défaut) et on prend ce qu'on a besoin... Lien vers le commentaire Partager sur d’autres sites More sharing options...
nonas Posté(e) le 24 septembre 2005 Partager Posté(e) le 24 septembre 2005 Wahou OK je vais tester ça, j'arrive déjà à grepper la ligne que je veux à chaque fois (mauvais pattern pour le grep en fait, "Project:" est beaucoup mieux) edit: ça marche au poil, tu viens de m'apprendre et l'éxistence de tr et sa syntaxe et en plus tu intègres la liste des personnes remerciées, c'est-y pas bô ? et même pas besoin de convertir "(" en espace, ce que je voulais virer c'était juste les virgules et la paranthèse fermante finale :) Lien vers le commentaire Partager sur d’autres sites More sharing options...
16ar Posté(e) le 18 janvier 2006 Partager Posté(e) le 18 janvier 2006 Ce n'est pas un script bash a vrai dire, c'est plus de la configuration du prompt de bash Utilisation rajoutez ca dans /etc/bash.bashrc, ou bien dans chacun de vos ~/.bashrc (mais le mettre sur le systeme entier, ca reste plus pratique). Si vous l'avez mis dans /etc, il faut virer les export PS1 dans vos fichiers .bashrc respectifs. # Code couleur de l'host export PS_HOST_COLOR='\[\e[01;32m\]' # Code couleur du user (selon si il est root ou pas) if [ $(id -u) -eq 0 ] then export PS_USER_COLOR='\[\e[01;31m\]' else export PS_USER_COLOR='\[\e[01;34m\]' fi export PS1='\007'$PS_USER_COLOR'\u'$PS_HOST_COLOR'@\h:\[\e[01;35m\]\w\[\e[33;01m\]\$\[\e[00m\] ' Je mettrais a jour avec les codes couleurs :) Si jamais vous savez comment faire un include dans un fichier script bash, ca m'interesse :) en gros, pour, la config de base, en root, on aura un prompt de cette forme root@hostname:/root/# et pour un utilisateur normal user@hostname:/home/user$ Lien vers le commentaire Partager sur d’autres sites More sharing options...
guanoapes Posté(e) le 18 janvier 2006 Partager Posté(e) le 18 janvier 2006 Dans un bash ou dans le .bashrc ? Dans un script bash pour les insculdes, il suffit de faire $(/path/to/file/script.sh) Pour le bashrc et la coloration, il y a des centaines d'exemples sur le net plein de gens mettent leur perso, et il y a pas mal de tutos aussi. est votre ami Lien vers le commentaire Partager sur d’autres sites More sharing options...
what Posté(e) le 18 janvier 2006 Partager Posté(e) le 18 janvier 2006 padprobz, le tout est de trouver la bonne commande ... ensuite pour faire un archivage automatique, tu peux faire un script du style : [ -d $arcpath ] || mkdir $arcpath [ -d $arcpath/$year ] || mkdir $arcpath/$year [ -d $arcpath/$year/$monthyear ] || mkdir $arcpath/$year/$montyear ou bien: [ -d $arcpath/$year/$monthyear ] || mkdir -p $arcpath/$year/$montyear Sinon quelques liens en Anglais pour des sauvegardes incrémentales avec rsync. http://www.mikerubel.org/computers/rsync_snapshots/ http://www.macosxhints.com/article.php?sto...31024013757927/ (inutile d'utiliser find/cpio, utiliser ls) A noter qu'il existe une option --link-dest pour rsync qui peut dispenser d'utiliser cp -al. A+ Lien vers le commentaire Partager sur d’autres sites More sharing options...
tuXXX Posté(e) le 18 janvier 2006 Partager Posté(e) le 18 janvier 2006 Dans un script bash pour les insculdes, il suffit de faire $(/path/to/file/script.sh) je dirais plutôt : source include ou (strictement équivalent) : . include Lien vers le commentaire Partager sur d’autres sites More sharing options...
16ar Posté(e) le 14 mars 2006 Partager Posté(e) le 14 mars 2006 Je l'oublie très souvent alors ca me permettra de la retrouver facilement : basename fichier.ext .ext Permet de récuperer "fichier" Et pour la forme dirname ca permet de récuperer le nom du répertoire courant Lien vers le commentaire Partager sur d’autres sites More sharing options...
Arofarn Posté(e) le 31 mai 2006 Partager Posté(e) le 31 mai 2006 Je déterre un peu ce topic bien interressant... Je cherche à faire un script qui me permette de lance une série de commande ftp ou ssh dans un script par exemple: Ca je sais faire - créer un répertoire local à partir de la date du système (mkdir ...) - se déplacer dedans (cd ...) - se connecter à un serveur ftp ou ssh (ftp ... ou ssh ...) Mais après je bloque, comment continuer le script pour récupérer des fichiers sur le ftp se déplacer dasn les répertoire ou lancer des commandes dans la sessions ssh ??? (commandes ftp ou ssh pas forcement que de copie de fichiers) Est-ce que c'est faisable, ou est-ce qu'il faut que je me rabatte vers un autre langage de script plus évolué (python ...) Lien vers le commentaire Partager sur d’autres sites More sharing options...
Poulpatine Posté(e) le 31 mai 2006 Partager Posté(e) le 31 mai 2006 Salut pour le ftp tu peux fournir un fichier contenant les commandes à executer en passant je ne sais plus quel argument, mais c'est possible :) . Lien vers le commentaire Partager sur d’autres sites More sharing options...
lorinc Posté(e) le 31 mai 2006 Partager Posté(e) le 31 mai 2006 et ssh tu peux passer en argument les commandes à exécuter, genre ssh lorinc@grossescochones.com ls ~/XXX/*.jpeg Lien vers le commentaire Partager sur d’autres sites More sharing options...
Guys Posté(e) le 31 mai 2006 Partager Posté(e) le 31 mai 2006 et ssh tu peux passer en argument les commandes à exécuter, genressh lorinc@grossescochones.com ls ~/XXX/*.jpeg Je te reconnais bien la Salut pour le ftp tu peux fournir un fichier contenant les commandes à executer en passant je ne sais plus quel argument, mais c'est possible :) . c'est pas @ ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
gauret Posté(e) le 31 mai 2006 Partager Posté(e) le 31 mai 2006 Il y a aussi lftp qui gère les commandes à lancer directement sur la ligne de commande, exemple : lftp -u user,pass ftp.groscochons.org -c "cd /groins; mirror -R .; exit" Sinon, il y a toujours ce bon vieux expect. Lien vers le commentaire Partager sur d’autres sites More sharing options...
ggbce Posté(e) le 31 mai 2006 Partager Posté(e) le 31 mai 2006 sleep x avec x un nombre de secondes Aussi, sleep supporte le paramètre s, m, h, d. Tu peux écrire sleep 5s (pour 5 secondes) ou sleep 5h (pour 5 heures) Mais je répète, c'est écrit dans man sleep Il y a aussi lftp qui gère les commandes à lancer directement sur la ligne de commande, exemple : lftp -u user,pass ftp.groscochons.org -c "cd /groins; mirror -R .; exit" Sinon, il y a toujours ce bon vieux expect. Moi j'utilise ncftp (+ ncftpget et ncftpput) qui est pas mal non plus. C'est pratiquement pareil à lftp. Lien vers le commentaire Partager sur d’autres sites More sharing options...
kortchnoi Posté(e) le 31 mai 2006 Partager Posté(e) le 31 mai 2006 Le truc sympa avec lftp c'est qu'on peut faire des petits script lftp =) Très pratique. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Arofarn Posté(e) le 4 juin 2006 Partager Posté(e) le 4 juin 2006 Je suppose que ça dépend du client FTP utilisé alors qui doit alors être capable de lancer un script FTP dasn le script Lien vers le commentaire Partager sur d’autres sites More sharing options...
zoto Posté(e) le 7 juin 2006 Partager Posté(e) le 7 juin 2006 Salut Je suis en train de finir un script, mais j'ai un soucis de syntaxe avec une boucle : echo "combien de comptes souhaitez vous ajouter ?" read i while [ $i != 0 ] do echo "creation du compte n°" #ici numero du compte echo "quelle est le nom de l'utilisateur ?" echo "donnez un mot de passe " i=='expr $i - 1' done En fait c'est a la fin que çà bloque, je voudrais augmenter la valeur de $i a chaque tous de boucle, mais une erreur de syntaxe bloque mon affaire. Si quelqu'un pouvais m'aider ça serais super :) . a+ Lien vers le commentaire Partager sur d’autres sites More sharing options...
theocrite Posté(e) le 7 juin 2006 Partager Posté(e) le 7 juin 2006 echo "combien de comptes souhaitez vous ajouter ?" read i while [ "$i" -ne "0" ] do echo "creation du compte n°" #ici numero du compte echo "quelle est le nom de l'utilisateur ?" echo "donnez un mot de passe " ((i=i-1)) done Compatible avec le bourne shell historique pour les machines qui n'ont pas bash (/bin/sh) Ou pour pas se faire chier for j in `seq $i`; do...done (Ou avec $() si c'est bash/ksh/zsh only sans soucis de rétrocompatibilité) Lien vers le commentaire Partager sur d’autres sites More sharing options...
zoto Posté(e) le 7 juin 2006 Partager Posté(e) le 7 juin 2006 echo "combien de comptes souhaitez vous ajouter ?" read i while [ "$i" -ne "0" ] do echo "creation du compte n°" #ici numero du compte echo "quelle est le nom de l'utilisateur ?" echo "donnez un mot de passe " ((i=i-1)) done Compatible avec le bourne shell historique pour les machines qui n'ont pas bash (/bin/sh) salut Merci beaucoup :). Quand j'aurais un peu de temps je donnez le reste du script, c'est a dire ce week end, c'est pour creer des htacces :) a+ Lien vers le commentaire Partager sur d’autres sites More sharing options...
Duke98 Posté(e) le 30 juin 2006 Partager Posté(e) le 30 juin 2006 humm, je sais pas trop où je dois mettre ca, j'hésitais avec le topic des exercices .... enfin, j'ai un peu de temps donc j'ai décidé de me mettre sérieusement à l'écriture de scripts j'ai un peu joué avec zenity, c'est plutot sympa donc un petit exemple tout simple de ce que j'ai fait. On peut sans doute améliorer... #!/bin/sh URL="$(zenity --entry \ --title="Enregister le flux" \ --text="Saisir le lien vers le flux :")" FILENAME="$(zenity --entry \ --title="Enregister le flux" \ --text="Saisir le nom du fichier (chemin complet)" mplayer -noframedrop -dumpfile $FILENAME -dumpstream $URL | zenity --text-info --title "Capture du Flux -- Merci de patienter;)"$ c'est tout simple le script demande l'url du flux puis le nom de fichier pour l'enregistrement. bon c'est vraiment pas grand chose mais c'est marant de faire des scripts avec de jolies boites de dialogue gtk+ puis accessoirement ca peut etre util pour certains. A priori ca capture aussi bien le real que le média player. La conversion viendra pluls tard, j'ai pas encore réussi à me décider sur le format de capture Voilà, un message, pour les idiots comme moi qui ne connaissaient pas Lien vers le commentaire Partager sur d’autres sites More sharing options...
theocrite Posté(e) le 30 juin 2006 Partager Posté(e) le 30 juin 2006 Tu as aussi dialog, Xdialog et ssh-askpass / gnome-askpasspour les passphrases Lien vers le commentaire Partager sur d’autres sites More sharing options...
Duke98 Posté(e) le 2 juillet 2006 Partager Posté(e) le 2 juillet 2006 bone je ne dois pas etre encore bien réveillé... je voudrais utiliser ca http://www.tldp.org/LDP/Bash-Beginners-Gui...sect_07_01.html pour vérifier si des fichiers existent.... mais impossible d'arriver à écrire le test, j'ai essayé : if [ (-e /tmp/outvid.avi) -a (! (-e /tmp/outaud.ogg)) ] je souhaite que ca renvoie vrai, si /tmp/outvid.avi existe et /tmp/outaud.ogg n'existe pas .... mais ca ne marche poa :( si je mets les parenthèses, j'ai droit à une erreur sur les parenthèses et si je les mets pas, il me sort une erreur su le -e ( "syntax error near unexpected token `-e' ") Lien vers le commentaire Partager sur d’autres sites More sharing options...
tuXXX Posté(e) le 2 juillet 2006 Partager Posté(e) le 2 juillet 2006 bone je ne dois pas etre encore bien réveillé...je voudrais utiliser ca http://www.tldp.org/LDP/Bash-Beginners-Gui...sect_07_01.html pour vérifier si des fichiers existent.... mais impossible d'arriver à écrire le test, j'ai essayé : if [ (-e /tmp/outvid.avi) -a (! (-e /tmp/outaud.ogg)) ] je souhaite que ca renvoie vrai, si /tmp/outvid.avi existe et /tmp/outaud.ogg n'existe pas .... mais ca ne marche poa :( si je mets les parenthèses, j'ai droit à une erreur sur les parenthèses et si je les mets pas, il me sort une erreur su le -e ( "syntax error near unexpected token `-e' ") Ça ça marche : if [ -e /tmp/outvid.avi -a ! -e /tmp/outvid.ogg ] Mais bon globalement c'est pas très facile à lire... Moi j'utiliserais des trucs plutôt du genre : if [ -e /tmp/outvid.avi ] && [ ! -e /tmp/outvid.ogg ] Lien vers le commentaire Partager sur d’autres sites More sharing options...
theocrite Posté(e) le 2 juillet 2006 Partager Posté(e) le 2 juillet 2006 Dans le cas où c'est bash only, on peut utiliser [[ qui est un peu mieux. http://wooledge.org/mywiki/BashFaq#head-d2...d9794efe844c292 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Duke98 Posté(e) le 3 juillet 2006 Partager Posté(e) le 3 juillet 2006 Ça ça marche : if [ -e /tmp/outvid.avi -a ! -e /tmp/outvid.ogg ] ben t'as du bol, j'y ai tourné dans tous les sens ca a jamais voullu avec le "!" faudra que j'éclaircisse ce mistère). Du coup j'ai évité les "!" et ca marche... bon en tout ca, le script est quasiment fini, il reste juste à ajuster les choix au niveaux des taux de compression... à part ca ca marche du tonerre Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.