Grundfrage: einen variablen Inhalt als Verzeichnisname in Linux verwenden

stimmen
1

Ich mag ein neues Verzeichnis mit dem Namen jeder Zip-Datei zur Zeit in einem bestimmten Verzeichnis existiert machen, in einem anderen. Ich habe eine ‚for-Schleife‘ für diesen Zweck geschrieben:

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

aber es erzeugt ein Verzeichnis $ {b} für die ersten Runde und machen Fehler für die nächsten diejenigen benannt. Könnten Sie mir bitte sagen, was ich tun soll?

Veröffentlicht am 13/01/2020 um 23:50
quelle vom benutzer
In anderen Sprachen...                            


1 antworten

stimmen
1

Sie setzen Ihre Variable in einfachen Anführungszeichen, da Vordergrund ‚$ {b}‘ wird nie interpretiert werden. Versuche dies:

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

Keine Notwendigkeit für Variablen $ Dateien und $ b.

Um es zusammenzufassen, sagen wir mal var=3,

  • echo "$var" wird angezeigt 3
  • echo '$var' wird angezeigt $var
  • echo "'$var'" wird angezeigt '3'
  • echo '"$var"' wird angezeigt "$var"

Hoffentlich macht den Sinn. Zitate funktionieren wie Klammern und Klammern.

Beantwortet am 13/01/2020 um 23:52
quelle vom benutzer

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