Aller au contenu

[Resolu][Bash] Besoin d'aide sur un script

Featured Replies

Posté(e)

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 :francais:

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 :cartonrouge:

Modifié par Minux

Posté(e)

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)

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 :francais:

Posté(e)
  • Auteur

Merci bcp, effectivement sans les anticotes ça fonctionne bien mieux :francais:

Posté(e)

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)

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 ? :francais:

[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é par ChRiiS

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.