运行 具有不同输入文件的脚本

Run a script with different input files

过去两周我一直在使用 groovy。我有一个脚本,我通常会像这样 运行:

    groovy script input

其中输入是输入文件的名称。但是,现在我想对包含大约 100 个这些文件的整个目录重复相同的操作 - 有没有办法在一个命令中 运行 这个,而不是一个接一个地执行?

当然,使用 shell 循环:

for file in *; do groovy script "$file" > file.out; done

这将遍历当前目录中的所有文件(和目录)。要使它递归,这意味着它也会在子目录中查找,请使用:

shopt -s globstar
for file in **/*; do groovy script "$file" > file.out; done

最后,为了避免目录(如果有的话),使用:

for file in *; do [ -f "$file" ] && groovy script "$file" > file.out; done