1

Поэтому я обычно пишу / нахожу генератор тестовых примеров для любого кода, который я пишу. Этот тип кода обычно приводит к выводу некоторых файлов. Чтобы быть точным, я пытаюсь сгенерировать много разных файлов, чтобы проверить мой код.

Скажите, что команда такая:

java test <parameters/> > <output filename/>

Есть ли способ автоматизировать это для множества различных значений параметров и генерировать много разных файлов?

Я старался:

for i in seq `0 3`; do java test $i > $i.txt; done

Я не смог использовать $ i в имени файла, и без него команда не выдала мне ошибок, но больше ничего не сделала. Я знаю, что командная строка Unix очень мощная, и у меня есть ощущение, что это возможно, но я просто не знаю, как это сделать.

3 ответа3

5

Если вы используете Bash, нет причин использовать seq . Кроме того, рекомендуется использовать $() вместо обратных галочек (но они также не нужны, если вы используете одну из этих форм).

for i in {0..3}; do java test $i > "$i.txt"; done

или же

for ((i=0;i<=3;i++)); do java test $i > "$i.txt"; done
2

Предполагая, что вы находитесь в оболочке bash, просто переместите команду seq в галочки:

for i in `seq 0 3`; do java test $i > $i.txt; done
1

Я бы сказал, сделать ваше приложение читать STDIN и создавать новые темы, будет более эффективным.

И еще один цикл:

seq 0 3 | while read i; do java test $i > "$i.txt"; done

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .