首页 > 解决方案 > 如何将多个具有迭代名称的文件传递给 bash 脚本中的可执行函数?

问题描述

我有一个可执行文件,它接受输入.h5文件并返回和输出.h5文件。我生成了几个具有迭代名称的输入文件,我想在 for 循环中将它们传递给可执行文件。

我认为 for 定义存在问题,我尝试了不同的语法,但都没有奏效。

for input_data_ in Dataset/*.h5;
do 
for ((n=1; n<=10, n++))
do 
./myexecutable -i "$input_data_" -o "output/$(basename "$input_data_" .h)_out.h5"
done 
done 

我收到此错误:"arithmetic expression required"

输入文件名:input_data_1.h5input_data_2.h5...我将文件传递-i给可执行文件并-o返回输出文件。这些文件位于名为Dataset.

标签: bashfor-loopinputiteration

解决方案


for 循环中存在语法错误。

for ((n=1; n<=10, n++))

您已使用,而不是;. 这就是您收到"arithmetic expression required"错误的原因。

将其更改为for ((n=1; n<=10; n++))将修复错误。


推荐阅读