以目录作为参数运行C 文件?而是使用bash

Run C++ file with directory as argument? Using Bash instead?

本文关键字:bash 文件 运行 参数      更新时间:2023-10-16

i有一个C 文件,该文件将图像作为参数。我有一个目录需要执行脚本。看起来像:

- parent
-- sub0
--- 0.pgm
--- 1.pgm
--- ...
-- sub1
--- 0.pgm
--- 1.pgm
--- ...
-- ...

parent包含120个子文件夹,每个子文件夹包含100-200 .pgm文件。C 文件将.pgm作为参数。

不是运行file.cpp filename.pgm千次,有没有办法将文件夹作为C 中的参数?理想情况下,我都喜欢:

  1. call file.cpp在父文件夹上,它通过子文件夹和文件递归工作
  2. 在狂欢中做到这一点

用bash,一些伪代码:

g++ -march=native -O2 file.cpp -o output
for $filename in folder
    ./output $filename
endfor

我该如何完成?

for循环遍历字符串列表,而不是目录的内容。您需要将球扩展到所需的文件列表。

shopt -s globstar
for filename in folder/**/*.pgm; do
   ./output "$filename"
done