grunnleggende spørsmålet: ved hjelp av en variabel innhold som katalognavn i Linux

stemmer
1

Jeg ønsker å lage en ny katalog med navnet på hver zip-fil for tiden eksisterer i en bestemt katalog, i en annen. Jeg har skrevet en for loop for dette formålet:

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

men det skaper en katalog med navnet $ {b} for første runde og gjøre feil for neste. Kan du fortelle meg hva jeg bør gjøre?

Publisert på 13/01/2020 klokken 23:50
kilden bruker
På andre språk...                            


1 svar

stemmer
1

Du setter din variabel i enkle anførselstegn, vil det derfor '$ {b} aldri tolkes. Prøv dette:

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

Ingen behov for variabler $ filer og $ b.

For å oppsummere, la oss si var=3,

  • echo "$var" vil vise 3
  • echo '$var' vil vise $var
  • echo "'$var'" vil vise '3'
  • echo '"$var"' vil vise "$var"

Forhåpentligvis dette er fornuftig. Sitater fungere som parenteser og braketter.

Svarte 13/01/2020 kl. 23:52
kilden bruker

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