question fondamentale: en utilisant une teneur variable en tant que nom de répertoire sous Linux

voix
1

Je veux faire un nouveau répertoire avec le nom de chaque fichier zip existe actuellement dans un répertoire spécifique, dans un autre. J'ai écrit une « boucle » à cet effet:

files=NL*.zip
for a in $files; do 
b=echo $a; 
sudo mkdir '/home/shokufeh/Desktop/normals/T1/${b}';
done

mais il crée un répertoire nommé $ {b} pour les premières erreurs ronds et pour les prochains. Pourriez-vous s'il vous plaît me dire ce que je dois faire?

Créé 13/01/2020 à 23:50
source utilisateur
Dans d'autres langues...                            


1 réponses

voix
1

Vous mettez votre variable entre guillemets simples, il y a donc $ {b} 'ne sera jamais interprété. Essaye ça:

for a in NL*.zip; do 
  sudo mkdir "/home/shokufeh/Desktop/normals/T1/${a}";
done

Pas besoin pour les variables fichiers $ et $ b.

Pour résumer, disons que var=3,

  • echo "$var" Affichera 3
  • echo '$var' Affichera $var
  • echo "'$var'" Affichera '3'
  • echo '"$var"' Affichera "$var"

Espérons que cela a du sens. Citations fonctionnent comme entre parenthèses et entre parenthèses.

Créé 13/01/2020 à 23:52
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more