Posté(e) le 29 février 200817 a Bonjour à tous, je me suis lancé dans la création d'un petit script bash pour faire appel à un petit utilitaire java que j'utilise souvent et qui nécessite quelques paramètres de lancement, et que j'ai la flemme de retaper à chaque fois j'essaie de faire un log du résultat, mais systématiquement le fichier log se retrouve avec un ? à la fin de son extension ... voici l'extrait de mon script qui lance la commande et créé le log : echo `java -jar /chemin/utilitaire.jar -s -OK /chemin/*.txt` > fichier.log Quelle est mon erreur ? Merci d'avance Modifié le 29 février 200817 a par Minux
Posté(e) le 29 février 200817 a Dans ton exemple j'aurais tendance à dire que le echo et les antiquotes sont superflus. La fin de la ligne redirige les caractères normalement écrits vers la sortie standard dans le fichier fichier.log, cela ne fait pas partie intégrante d'une manière spécifique d'appeler echo, mais marche avec toute commande.
Posté(e) le 29 février 200817 a même pire que superflu, c'est pas top, car echo va devoir attendre la fin du programme en antiquote pour écrire sa sortie dans le fichier. Les antiquote ouvrent un nouveau shell, y exécutent le programme, pendant ce temps, le shell père est bloqué dans l'attente de la fin du fils. Essayez ça : echo ` for i in $(seq 1 10); do sleep 1; echo $i; done;` C'est relativement convainquant
Posté(e) le 29 février 200817 a Auteur Merci bcp, effectivement sans les anticotes ça fonctionne bien mieux
Posté(e) le 1 mars 200817 a Tiens, c'est marrant, dans ton exemple lorinc, la partie qui est dans les backquotes ne comporte pas de retour à la ligne. Je me demande pourquoi.
Posté(e) le 2 mars 200817 a Effectivement, même si on les force, l'echo les vire: echo ` for i in $(seq 1 10); do sleep 1; echo -e "$i\n"; done;` Bizarre, non ? [edit] Par contre: echo -e ` for i in $(seq 1 10); do sleep 1; echo "$i\n"; done;` Mais toujours un résultat étrange (décalage d'un). Enfin bref s'il ne prend pas les \n c'est aussi par ce que: -e: enable interpretation of backslash escapes -E: disable interpretation of backslash escapes (default) Je sais pas, c'est bizarre... [/edit] Modifié le 2 mars 200817 a par ChRiiS
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.