Bonjour,
Alors voici mon problème dans un script unix (ksh) :
1. dans une fonction je défini 2 variables :
var1="PRCRP.PCRRP.REFAPF.[0-9][0-9][0-9].D[0-9][0-9][0-9][0-9][0-9][0-9].RECU"
var2="reception"
Elle doit servir à faire un ls plus loin.
2. De retour dans le programme principe, si je fais un echo de ma variable je retrouve bien le résultat
3. Je code la ligne suivante :
Resultat=`NomFichier ${var2} ${var1}`
(NomFichier étant une autre fonction perso).
Cette instruction a bien marché pendant un certain temps, mais depuis qqs jours, pour une raison que je ne comprends pas, var1 est "interprété" dans la ligne de commande définissant "Resultat" de sorte que la fonction NomFichier reçoit :
PRCRP.PCRRP.REFAPF.006.D150108.RECU
au lieu de :
PRCRP.PCRRP.REFAPF.[0-9][0-9][0-9].D[0-9][0-9][0-9][0-9][0-9][0-9].RECU
(rq : il s'agit d'un masque sur un fichier, le fichier "PRCRP.PCRRP.REFAPF.006.D150108.RECU" a existé, mais de toutes façon il n'existe plus a ce jour ...)
... et pour faire simple, si j'utilise le même script avec :
var1="PRCRP.PCRRP.CERPFT.[0-9][0-9][0-9].D[0-9][0-9][0-9][0-9][0-9][0-9].RECU"
ça marche très bien (par d'interprétation).
Alors, j'ai une solution pour que ça marche de nouveau :
Resultat=`NomFichier "${var2}" "${var1}"`
mais je ne comprends pas pourquoi j'ai eu "soudain" ce changement de comportement : donc si qqn à une explication ...
Partager