我在计算集群上使用Unix中的软件,我需要数百个输入文件进行组合分析,这需要使用-f标志指定每个文件,它就像:
software -f file1.ext -f file2.ext -f file3.ext
简单的bash循环并不能让它理解每个文件,例如:
for i in *ext; do software -f ${i}; done
更简单的方法也不起作用:
software -f *ext
指定文件所在的文件夹不起作用:
software -f .
即使是较酷的bash脚本也不起作用(实际上与简单循环没有什么不同):
#/bin/bash
for i in $(ls *.ext | rev | cut -c 5- | rev | uniq)
do
software -f ${i}.ext
done
所以我需要的是一种让软件通过迭代-f来识别同一输入标志中的所有文件的方法。我相信。类似的东西:
for i in *ext; for each -f; do software -f ${i}; done
非常感谢任何帮助!
答案 0 :(得分:1)
您可以使用适当的选项迭代构建数组。
for f in *ext; do
opts+=(-f "$f")
done
software "${opts[@]}"