![在for循环中评估unix命令](https://linux22.com/image/7979/%E5%9C%A8for%E5%BE%AA%E7%8E%AF%E4%B8%AD%E8%AF%84%E4%BC%B0unix%E5%91%BD%E4%BB%A4.png)
我希望打印从i.res
到POSCARi+1
。
i.res
1.res
是名称为、2.res
、等的文件3.res
。这些文件位于工作目录中。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
我希望对表达式进行求值,并给出POSCAR2
for 1.res
、POSCAR3
for2.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 无法理解该语法。对于算术评估,您需要$(( ))
改为。