基本问题:在Linux中使用可变内容作为目录名称

问题描述 投票:2回答:1

我想创建一个新目录,其中每个目录中都存在一个zip文件的名称,该目录在另一个目录中。为此,我编写了一个“ for循环”:

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

但是它在第一轮创建了一个名为$ {b}的目录,并在下一个目录中出错。您能告诉我该怎么办吗?

bash quotes mkdir
1个回答
3
投票

您将变量用简单的引号引起来,因此'$ {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"

希望这是有道理的。引号功能像括号和方括号。

© www.soinside.com 2019 - 2024. All rights reserved.