如何在包含变量和添加文本的 for 循环中创建文件?

How do I create a file in a for loop that includes the variable and added text?

我有以下代码,我想在其中创建由变量编号命名的目录,然后将 _DOS 添加到文件名中。 (基本上我希望代码创建名为:1_DOS 2_DOS 3_DOS 的目录,然后保存文件 POSCAR 并在创建的目录中登录。)但是,当我 运行工作,它没有创建所需的目录。我认为我的错误是在 mkdir $i_DOS 中。我认为代码正在寻找 i = i_DOS 但没有找到它。 当我 运行 this 时,错误 returns as mkdir: missing operand 你有什么建议吗?

 for i in 1 2 3
 do
 mkdir $i_DOS
 cp POSCAR $i_DOS
 cp log $i_DOS
 done
 exit

提前致谢。

我认为你应该使用 !i!或 %i% 而不是 $i,因为它引用了标签。

 for i in 1 2 3
 do
 mkdir !i!_DOS
 cp POSCAR !i!_DOS
 cp log !i!_DOS
 done
 exit

在变量 i 周围使用 {} 大括号来解决歧义。

 for i in 1 2 3
 do
 mkdir ${i}_DOS
 cp POSCAR ${i}_DOS
 cp log ${i}_DOS
 done
 exit