UNIX: Crontab - Shell/Batch - Programmation
Marsh Posté le 20-04-2006 à 13:40:39
maoboyindo a écrit : |
Normal, les backslashes sont mis entre quottes simples donc ils sont traités tels quel (leur rôle est annulé par les quottes simples)
maoboyindo a écrit : Si je ne met pas les "\", il m'interprète les %. |
Le caractère "%" n'est pas un métacaractère shell donc il ne peut pas être interprété. Et même un métacaractère ne serait pas interprété car les quottes simples inhibent tout métacaractère quel qu'il soit (c'est pour ça que tu récupères tes "\" car leur rôle est annulé par les quottes simples)
Par ailleurs, tu dois faire une erreur dans la retranscription de ton problème parce que je viens, à l'instant, de taper
ls >a.`date '+%Y'` |
Et j'ai bien eu mon "ls" qui est allé s'inscrire dans un fichier "a.2006"...
Marsh Posté le 21-04-2006 à 12:11:09
Merci pour ta réponse.
Effectivement, si je tape :
ls >a.`date '+%Y'`
Directement sous le prompt, je n'ai aucun souci.
Le problème se produit si j'écris cette ligne de code dans la crontab.
Marsh Posté le 21-04-2006 à 12:51:54
oui, le crontab interprète les % comme un début de heredoc:
Citation : |
essaye << \\ >>
Marsh Posté le 21-04-2006 à 12:53:49
ReplyMarsh Posté le 21-04-2006 à 18:34:40
nargy a écrit : oui, le crontab interprète les % comme un début de heredoc |
Je savions point...
nargy a écrit : errata: fait un script ou mets la redirection >> dans ton script |
Vi, c'est encore ce qu'il y a de mieux à faire...
Marsh Posté le 18-04-2006 à 16:47:50
Bonjour,
Je souhaite tracer l'exécution d'un script dans un fichier log.
Jusque là, j'arrive à suivre puisque je redirige vers le fichier log en question à l'aide de >>.
Par contre, je voudrais que la date apparaissent dans le nom du fichier log.
Si je met >> /export/home/testdate.trc.`date '+\%Y\%m\%d'`
Le nom du fichier comporte alors les "\".
Si je ne met pas les "\", il m'interprète les %.
Si quelqu'un à une idée, elle est la bienvenue.
PS : Je suis sous Unix.
D'avance merci pour vos réponses.