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

标签 linux bash shell

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

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

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

编辑:应该澄清“main”是从生成文件生成的可执行文件

最佳答案

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

#!/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 使 main 可执行。

关于linux - 将对目录中的所有文件执行程序的 Bash 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23259433/

相关文章:

c++ - 如何将源IP地址设置为0.0.0.0?

c - scull 的 proc read 实现中的参数是什么意思?

linux - 从 scala 代码执行的 Shell 命令无法识别 bash 别名

node.js - 使用 Yarn 创建目录的权限

php - 通过浏览器从 php 脚本调用 svn 更新不起作用

linux - 在 BASH shell 的文件中以另一个用户名执行多个命令

linux - 如何使用curl和printf打印ftp文件信息

bash - bash中的“set -e”是做什么的?

linux - 如何使用 shell 脚本创建一个 zip 文件?

bash - 在 bash 中创建子菜单