我正在运行我的runnable jar文件:
/usr/lib/jvm/java-1.7.0-openjdk-amd64/bin/java -jar data_test.jar config.properties > test_jar_100.txt
现在我想在for循环中运行上面的命令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
所以我得到了以下for循环,但不确定如何在再次调用之前我睡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
答案 0 :(得分:3)
您可以使用sleep
命令暂停循环执行一分钟,对于文件名,在名称中添加“$ i”变量就足够了:
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
答案 1 :(得分:3)
假设有一个带有bash的常见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
答案 2 :(得分:3)
如果您从100开始编号,为什么要从1开始计算循环?
for ((i=100; i<200; i++)); do yourlongcommand > test_jar_$i.txt; sleep 1m; done