我有一个C代码,我用它来提取文件并写入单独的文件,如exax0.txt,...,exax202.txt。要做到这一点,我使用
for i in $(seq 0 202);
do echo $i | ./f.out exa-NO-hyp.bin exax${i}.txt <<< "${i}"
done
相反,我希望将输出文件命名为exax495.txt,exax535.txt,...,exax8545.txt。为此,我尝试了类似的事情:
for i in $(seq 0 202);
do echo $i | ./f.out exa-NO-hyp.bin exax${(i*40+495)}.txt <<< "${i}"
done
但它说,-bash: exax${i*40}.txt: bad substitution
有人可以帮帮我吗?
答案 0 :(得分:2)
您可以使用$((...))
执行算术。
即。一个简单的用途是:
for i in {1..10}; do touch file$(($i+5)).txt ; done
或者在你的情况下:
for i in $(seq 0 202); do echo $i | ./f.out exa-NO-hyp.bin exax$(($i*40+495)).txt <<< "${i}"; done