如何编程Linux命令行以多次运行一段代码?

eff*_*iss 1 linux command-line

所以,我通常为我编写的任何代码编写/找到一个测试用例生成器。这种类型的代码通常会导致一些文件输出。为了彻底,我尝试生成许多不同的文件来测试我的代码。

说命令是这样的:

java test <parameters/> > <output filename/>
Run Code Online (Sandbox Code Playgroud)

有没有办法针对许多不同的参数值自动执行此操作并生成许多不同的文件?

我试过:

for i in seq `0 3`; do java test $i > $i.txt; done
Run Code Online (Sandbox Code Playgroud)

我无法在文件名中使用 $i,如果没有它,命令不会给我任何错误,但也没有做任何其他事情。我知道 Unix 命令行非常强大,我有一种感觉,这应该是可能的,但我就是不知道该怎么做。

Den*_*son 5

如果您使用 Bash,则没有理由使用seq. 此外,建议您使用$()而不是反引号(但如果您使用这些形式之一,则不需要它们)。

for i in {0..3}; do java test $i > "$i.txt"; done
Run Code Online (Sandbox Code Playgroud)

或者

for ((i=0;i<=3;i++)); do java test $i > "$i.txt"; done
Run Code Online (Sandbox Code Playgroud)