basi c вопрос: использование переменного содержимого в качестве имени каталога в Linux - PullRequest
2 голосов
/ 13 января 2020

Я хочу создать новый каталог с именем каждого zip-файла, который в данный момент существует в указанном каталоге c, в другом. Для этой цели я написал 'для l oop':

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

, но он создает каталог с именем $ {b} для первого раунда и делает ошибки для следующих. Не могли бы вы сказать мне, что я должен делать?

1 Ответ

3 голосов
/ 13 января 2020

Вы помещаете вашу переменную в простые кавычки, поэтому '$ {b}' никогда не будет интерпретироваться. Попробуйте это:

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

Нет необходимости в переменных $ files и $ b.

Подводя итог, скажем, var=3,

  • echo "$var" будет дисплей 3
  • echo '$var' будет отображаться $var
  • echo "'$var'" будет отображаться '3'
  • echo '"$var"' будет отображаться "$var"

Надеюсь, это имеет смысл. Кавычки функционируют как скобки и скобки.

...