按顺序跳过文件的shell命令 我使用以下顺序运行多个数据文件的C++代码: for i in $(seq 0 100); do ./f.out c2.$(($i*40+495)).bin `c2.avg.$(($i*40+495)).txt; done`

按顺序跳过文件的shell命令 我使用以下顺序运行多个数据文件的C++代码: for i in $(seq 0 100); do ./f.out c2.$(($i*40+495)).bin `c2.avg.$(($i*40+495)).txt; done`,shell,sh,Shell,Sh,现在,如果某些输入文件丢失,例如c2.575.bin丢失,则不会对其余文件执行该命令。如何修改shell命令以跳过丢失的输入文件并移动到下一个输入文件 谢谢 在循环中,在调用操作该文件的程序之前,测试该文件是否存在: for i in $(seq 0 100); do INPUT=c2.$(($i*40+495)).bin test -e $INPUT && ./f.out $INPUT c2.avg.$(($i*40+495)).txt done 这边。/f.出去。。

现在,如果某些输入文件丢失,例如c2.575.bin丢失,则不会对其余文件执行该命令。如何修改shell命令以跳过丢失的输入文件并移动到下一个输入文件


谢谢

在循环中,在调用操作该文件的程序之前,测试该文件是否存在:

for i in $(seq 0 100); do
  INPUT=c2.$(($i*40+495)).bin
  test -e $INPUT && ./f.out $INPUT c2.avg.$(($i*40+495)).txt
done
这边。/f.出去。。。将仅对现有输入文件执行

有关详细信息,请参阅

顺便说一句,&&符号是if的简写。如果要获得更好的可读性,可以使用{0..100}而不是$seq 0 100,请参阅帮助。您可以将以下代码放入脚本并执行脚本。e、 g.,runCode.bash

更改权限并执行脚本

chmod u+x runCode.bash`
./runCode.bash`

循环的一次迭代中的错误不应阻止循环的其他迭代继续进行,除非您已将shell设置为在出现错误时退出。此外,{0..100}比在可能的情况下使用seq要好。谢谢。用{0..100}替换seq很有效。这也很好。非常感谢。
chmod u+x runCode.bash`
./runCode.bash`