在for循环中评估unix命令

在for循环中评估unix命令

我希望打印从i.resPOSCARi+1

  1. i.res1.res是名称为、2.res、等的文件3.res。这些文件位于工作目录中。
  2. POSCAR(i+1)POSCAR2分别是名称为、POSCAR3的文件POSCAR4。我需要工作目录中的这些文件。

我正在使用这个循环:

for i in 1 2 3 4 5 6 7 8 9; do convert $i.res POSCAR[$i+1]; done

结果是:

POSCAR1+1
POSCAR2+1
POSCAR3+1

我希望对表达式进行求值,并给出POSCAR2for 1.resPOSCAR3for2.res等等。

答案1

如果你只想打印POSCAR当前值$i加一,你可以尝试:

for i in 1 2 3 4 5 6 7 8 9; do convert $i.res POSCAR$((i+1)); done

[$i+1]shell 无法理解该语法。对于算术评估,您需要$(( ))改为。

相关内容