bash 命令在文件名不匹配时跳过执行



我使用bash脚本在shell中执行命令几次:

for i in $(seq 0 202); do
    xqcdio.convert.to.general /global/homes/s/sufian/job-run/output/c2.avg.00$(($i*40+495)).data.save binarydata/c2.avg.00$(($i*40+495)).bin < input$(($i*40+495)).txt
done

问题是,如果缺少某些文件,例如c2.avg.008305.data.save和其他几个文件,则该命令立即终止。

如果找不到文件并移至下一个文件,我可以跳过执行命令吗?

使用 continue

[[ ! -f missing_file_path ]] && continue;
#put this immediately after do

跳过执行并移至下一个迭代。

使用test查看文件是否首先存在。

for i in ... ; do [ -f "somefile$i" ] && ... ; done

相关内容

  • 没有找到相关文章

最新更新