2015-05-09 1 views
2

Я бегу мой работоспособный файл фляги так:вызова команды в течение цикла каждый 1 минуту

/usr/lib/jvm/java-1.7.0-openjdk-amd64/bin/java -jar data_test.jar config.properties > test_jar_100.txt 

Теперь я хочу, чтобы запустить выше команду в цикле 100 раз, но он должен спать в течение 1 минуты прежде чем вызывать его снова, и имя файла должно увеличиваться на 1 в каждом прогоне.

Так поток должен быть таким:

/usr/lib/jvm/java-1.7.0-openjdk-amd64/bin/java -jar data_test.jar config.properties > test_jar_100.txt 
sleep for 1 minute 
/usr/lib/jvm/java-1.7.0-openjdk-amd64/bin/java -jar data_test.jar config.properties > test_jar_101.txt 
sleep for 1 minute 
/usr/lib/jvm/java-1.7.0-openjdk-amd64/bin/java -jar data_test.jar config.properties > test_jar_102.txt 
.. keep doing this 100 time 

Так что я ниже цикла, но не знаю, как я могу спать в течение 1 минуты перед вызовом его снова и увеличивать количество файлов на 1 с каждым бежать?

for ((i=1;i<=100;i++)); do /usr/lib/jvm/java-1.7.0-openjdk-amd64/bin/java -jar data_test.jar config.properties > test_jar_100.txt; done 
+1

Можете ли вы назвать 'sleep 60'? –

+0

@ EricRenouf '60'? Или вы имеете в виду '60 * 1000'? Я бы подумал об использовании ScheduledExecutorService. –

+1

@HovercraftFullOfEels, если он находится в подсказке bash, он находится в секундах, поэтому '60' –

ответ

3

Вы можете использовать команду sleep, чтобы приостановить исполнение своего цикла в течение минуты и для имени файла, добавив «$ я» переменная имя должно быть достаточно:

for ((i=1;i<=100;i++)); do 
    /usr/lib/jvm/java-1.7.0-openjdk-amd64/bin/java -jar data_test.jar config.properties > "test_jar_${i}.txt" 
    # Sleep for a minute 
    sleep 60 
done 
3

Предполагая общая среда Linux с Баш, вы можете выполнить:

for i in $(seq 100 199) ; do echo "iteration $i" ; /usr/lib/jvm/java-1.7.0-openjdk-amd64/bin/java -jar data_test.jar config.properties > test_jar_$i.txt ; sleep 60 ; done 
3

Почему вы рассчитываете свой цикл с 1, если вы нумерации файлов от 100?

for ((i=100; i<200; i++)); do yourlongcommand > test_jar_$i.txt; sleep 1m; done

Смежные вопросы