rss
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut : Résolu

[Script bash] Problème caractère echappement

Posté par letitibleu, le lundi 23 avril 2007 à 10:49:15
Bonjour,

Voici le script test.sh :

#!/bin/ksh
echo $* | /usr/bin/nawk ' BEGIN   { FS=" # " } { split("EMAIL:TITLE:REGLE:DELAI:NBDISCR:HOSTNAME:CT1:CT2­:MESSAGE:FILENAME:HOSTIP:USERNAME:EVENTID:AGENT:EVENTTIME&qu­ot;, champs, ":") } { for ( x in champs ) { printf("%s=\"%s\"\n",champs[x],$x); } } ' > essai


Ce script est exécuté par un logiciel, donc les arguments passés en paramètres ne sont pas modifiables. Voici un exemple

1er cas :

./test.sh "test@test.fr # Detection d'une menace non supprimee # RG000 # 30 # 3 # TESTTEST # W32/Spybot. worm.gen.a # trojan # ePO detected an event File infected. Undetermined clean error. Quarantine failed with ID 1276 and severity 4 # c:\documents and settings\ly0000\dookies\ly0000@serving-sys[1].txt # 00.00.00.00 # SYSTEM # 0000000-0000-0000-0000-000000000 # ePO_A00 # 2002-08-12~14:17:18~24~EST"


==> Si on visualise le fichier essai, tout les champs sont complétés.

2ième cas :

./test.sh "test@test.fr # Detection d'une menace non supprimee # RG000 # 30 # 3 # TESTTEST # W32/Spybot. worm.gen.a # trojan # ePO detected an event File infected. Undetermined clean error. Quarantine failed with ID 1276 and severity 4 # c:\documents and settings\ly0000\cookies\ly0000@serving-sys[1].txt # 00.00.00.00 # SYSTEM # 0000000-0000-0000-0000-000000000 # ePO_A00 # 2002-08-12~14:17:18~24~EST"


==> Tous les champs du fichier essai ne sont pas complétés. Le script est coupé. Cela se produit uniquement lorsque le script rencontre une chaine de caractère avec "\c", qui doit être interprété comme une chaine d'échappement je pense ?

Comment faire pour ignorer cette fonction ? J'ai tout essayé mais sans succès........

Merci.
Configuration: Windows XP
Internet Explorer 7.0
Répondre à letitibleu  Signaler ce message aux modérateurs Aller au dernier message

1


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
jipicy, le lundi 23 avril 2007 à 12:27:27
Salut,

Avec un shell "bash" et un shebang "#!/bin/sh", les 2 lignes d'arguments passent très bien.

Avec un shell "bash" et un shebang "#!/bin/ksh", ça passe aussi mais le "\c" est suvrée au passege (c:\documents and settings\ly0000ookies\ly0000@serving-sys[1].txt) ;-))

Par contre avec un shell "ksh", c'est vrai que la ligne d'argument avec le "\cookies" ne renvoie que des valeurs vides ;-((

Seule solution envisageable, modifier les arguments en entrée en remplaçant toutes chaînes commençant par "\c" par "\\\c" et là ça marche ;-))
Z'@+...che.
JP : Zen, my Nuggets ! ;-)
Le savoir n'est bon que s'il est partagé.
Répondre à jipicy

2


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
 letitibleu, le lundi 23 avril 2007 à 13:24:02
Merci pour ta réponse jipicy, le problème c'est que je ne peux pas modifier les arguments en entrée car ils sont dynamiques et envoyés à partir d'un logiciel....

J'ai testé en remplaçant la ligne "#!/bin/ksh" par "#!/bin/sh", ça n'a pas marché.

Par contre j'ai essayé également de supprimer la ligne "#!/bin/ksh" et là ça marche y compris pour le deuxième cas !!

Comme quoi ça tient à peu de chose, merci pour ton aide !
Répondre à letitibleu
Logiciels pertinents trouvés dans les téléchargements
Télécharger All In One Video Script 1.0All In One Video Script - All In One Video Script est un script pour l'extension GreaseMonkey pour le navigateur Firefox permettant de détecter la...Catégorie: Vidéo
Licence: Freeware/gratuit
Télécharger MP3Tag 2.37aMP3Tag - Mp3tag est un éditeur de Métatags (ID3 tags) pour la plupart des formats audio courants. Il est capable de renommer un grand...Catégorie: Marquage (ID3)
Licence: Freeware/gratuit
Télécharger Ant Renamer 2.10.0Ant Renamer - ANT Renamer permet de renommer un grand nombre de fichiers et dossiers en quelques clics. Il ne fait que modifier les noms...Catégorie: Gestion de fichiers
Licence: Freeware/gratuit
Télécharger GreaseMonkey 0.8.20080609.0GreaseMonkey - GreaseMonkey permet de bidouiller à la volée les pages web que vous consultez. C'est à dire qu'il va modifier la page...Catégorie: Extensions Firefox
Licence: Open Source
Plus de logiciels gratuits sur « [Script bash] Problème caractère echappement »