Základní otázka: za použití proměnného obsah jako název adresáře v Linuxu

hlasů
1

Chci, aby nový adresář se jménem každého souboru zip v současné době existuje v určitém adresáři, do druhého. Napsal jsem ‚pro smyčce‘ pro tento účel:

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

ale vytvoří adresář s názvem $ {b} pro první kolo a dělat chyby pro ty příští. Mohl byste prosím, řekni mi, co mám dělat?

Položena 13/01/2020 v 23:50
zdroj uživatelem
V jiných jazycích...                            


1 odpovědí

hlasů
1

dát vám vaše proměnné v jednoduchých uvozovkách, nebude nikdy vykládáno Proto také ‚$ {b}‘. Zkuste to:

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

Není třeba proměnné $ soubory a $ b.

Abychom to shrnuli, řekněme var=3,

  • echo "$var" zobrazí 3
  • echo '$var' zobrazí $var
  • echo "'$var'" zobrazí '3'
  • echo '"$var"' zobrazí "$var"

Doufejme, že to má smysl. Citáty fungují jako závorky a závorek.

Odpovězeno 13/01/2020 v 23:52
zdroj uživatelem

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