编写一个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 生成的可执行文件
答案 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