Je souhaite entrer plusieurs répertoires dans une boucle for. Je n'ai pas le nom complet des répertoires, seulement une partie de celui-ci.Entrée d'un répertoire dont le nom correspond à une sous-chaîne
Je voudrais faire quelque chose comme ce que vous écrivez sur le terminal, quelque chose comme cd *IncompleteDirName*
Ceci est un MVE de la boucle: IncompleteDirName
« s sont obtenus à partir du fichier IncompleteDirNames
.
cont=1
sum=1
while read anotherFILE; do
IncompleteDirName=$(sed "${cont}q;d" IncompleteDirNames)
cd *"${IncompleteDirName}"*
# Do stuff
cd ..
cont=$((cont + sum))
done <anotherFILE
Cela ne fonctionne pas, je ne sais pas s'il s'agit d'un caractère générique qui ne se développe pas ou d'une variable qui ne fonctionne pas correctement.
Il me lancer ce message d'erreur:
*: Aucun fichier ou répertoire
Je suppose que cela signifie astérisque ne fonctionne pas comme prévu. Il n'entre pas dans les répertoires, et il y a un répertoire qui correspond à chaque modèle. Quoi qu'il en soit, aucun répertoire n'est entré.
Ce fichier est ainsi IncompleteDirNames
ressemble à:
Alicante Almeria Andalucia Avila
Il est une colonne de noms. Ce sont les noms de répertoire correspondant aux IncompleteDirName
s ci-dessus:
aa4fas_Alicante_com
mun_Almeria
comunidadde_Andalucia
ciuAvila
Que signifie "ne fonctionne pas"? J'ai du mal à comprendre exactement ce qui se passe ici, car c'est un exemple qui ne fonctionne pas vraiment *. Les sous-chaînes sont dans un fichier, ces sous-chaînes font partie des noms de répertoires, et vous voulez "faire des choses" dans chacun des répertoires correspondant partiellement à une sous-chaîne située dans "FICHIER"? Que faire si une sous-chaîne correspond à plusieurs répertoires? Qu'y a-t-il dans les fichiers 'code' et' p-ca'? – ghoti
Je suis sûr que plusieurs répertoires ne correspondent pas. J'ai corrigé le code. – D1X
Vous devez clarifier ce qui ne fonctionne pas. Une chose est sûre: si votre nom incomplet peut correspondre à de nombreux répertoires, et que vous voulez faire quelque chose à l'intérieur de chacun d'entre eux, vous avez besoin d'une boucle pour cela. Vous devez également préparer le cas où aucun répertoire ne correspond, ce qui, dans votre code de test, provoquera l'échec de la commande "cd" mais n'empêchera pas l'exécution de la partie "Do stuff". – Fred