problème de substitution de variable [KSH] - Shell/Batch - Programmation
Marsh Posté le 25-03-2003 à 17:01:56
A quoi correspond ton @(nimporte|quoi) stp ?
Si c'est une expression reguliere, normal que ca marche pas : la commande ls ne sait pas faire d'interpolation...
Marsh Posté le 26-03-2003 à 09:14:36
Nan, c'est pas du regexp, c'est de la susbstitution gérée par le shell qui fait le pattern matching sur les noms de fichiers.
D'ailleurs, quand je fais directement ls @(nimporte|quoi)*.sh, ca fonctionne, c'est le fait de l'affecter à une variable qui pose problème.
Sinon pour info, @(nimporte|quoi), ca correspond à "nimporte" ou "quoi"...enfin en ksh en tout cas.
Marsh Posté le 28-03-2003 à 13:09:21
KSauzeRK a écrit : Bonjour, |
je suis sous ksh et si tu fait
ls -l *sh
ca suffit
ou ls -l toto*sh
toto1.sh
toto2.log
totottt4568.log
etc....
ca marcheras
Marsh Posté le 28-03-2003 à 13:36:32
vimaster a écrit : je suis sous ksh et si tu fait |
euh...je t'avoue que je comprends pas trop là. Il me semble que le '*' correspond à 0 ou n caractères quelconques. Je vois pas trop comment ls -l tot*sh peut sortir toto2.log, j'ai testé ici, ca ne fonctionne pas comme un 'ou'.
Marsh Posté le 21-03-2003 à 16:02:38
Bonjour,
J'ai un problème sur un script shell (ksh) :
pourquoi les lignes :
file_name_pattern=@(nimporte|quoi)*.sh
ls -l $file_name_pattern
ne sort aucun résultat, enfin plus exactement la commande ls dit qu'il n'y aucun fichier correspondant, alors qu'ils existent, d'ailleurs si je fais directement :
ls -l @(nimporte|quoi)*.sh
j'ai bien les résultats voulu...j'imagine que le problème vient de l'interprétation du '@', si le pattern est uniquement *.sh, ca passe...bref je comprends pas, si quelqu'un pouvait m'aider.
Merci
Message édité par KSauzeRK le 21-03-2003 à 16:03:20