J'essaie d'exécuter la commande suivante dans un script Shell où adir="mydir"
et extType=*.txt
cp "$adir/$extType" "$destination"
Cependant je reçois:
cp: cannot stat ‘mydir/*.txt’: No such file or directory
mais il y a un tel répertoire et si je l'exécute manuellement en ligne de commande, cela fonctionne.
Des idées ce qui ne va pas?
Vous devez remplacer "$adir/$extType"
par "$adir/"$extType
sinon l’expansion globale n’aura pas lieu et il recherchera un fichier portant exactement le nom de *.txt
qui ne peut pas être trouvé et se plaint à ce sujet. :
cp: cannot stat ‘mydir/*.txt’: No such file or directory
Ravexina a déjà bien souligné que la sélection ne fonctionnait pas entre guillemets simples ou doubles, et que la syntaxe cp était fausse pour plusieurs fichiers/destination unique et nécessitait le drapeau -t.
Ce que vous pourriez faire comme alternative est d’utiliser des tableaux bash:
extType=( "$adir"/*.txt )
cp -t "$destination" "${extType[@]}"
Alternativement, boucle
for i in "$adir"/*.txt ; do cp "$i" "$destination"; done