Bash脚本,它将对目录中的所有文件执行程序

时间:2014-04-24 03:46:03

标签: linux bash shell

编写一个bash脚本来执行程序' main'目录' allfiles'中的所有文件。 Main是可执行文件。然后将结果定向到文件" output.dat'。

每当我运行bash脚本时,我都会收到错误" ./ main:没有这样的文件或目录"。 bash脚本,main和' allfiles'目录全部在' / home /目录/'中。我不确定为什么我会收到此错误,或者我是否正确编写了bash脚本。任何帮助是极大的赞赏。

#!/bin/bash
for file in /home/directory/allfiles/*
do
   ./main $file >> output.dat
done
编辑:应该澄清'主要'是一个从makefile

生成的可执行文件

2 个答案:

答案 0 :(得分:0)

如果您在运行脚本时不在/home/directory,那么它将无法找到主要内容。尝试

#!/bin/bash
for file in /home/directory/allfiles/*
do
   /home/directory/main $file >> output.dat
done

此外,如果main不可执行,那么您必须让bash手动调用它。使用bash /home/directory/main $file,或使用chmod +x main制作主要可执行文件。

答案 1 :(得分:0)

我更喜欢在这种情况下使用find。您可以使用子目录进行管理;)

#!/bin/bash
main=./main
basedir=/home/directory/allfiles/
outFile=output.dat

for file in $(find $basedir -type f)
do
    $main $file >> $outFile
done
相关问题