2013-05-10 93 views
-1

我运行从命令提示一个可运行的java罐子像这 -自动化使用外壳脚本

的java运行的java可运行罐子-jar CassandraLnP.jar config.properties NUMBER_OF_THREADS:10 TOTAL_RUNNING_TIME:30> cassandra_read_prod_netflix_1.10.1.txt

所以每当我想运行上面的罐子,我通常去并运行上述命令提示符上面整个命令所以它是目前对我来说是手动过程。

现在我想使用shell脚本自动化这个东西,这样我就可以从shell脚本中传递这些参数,然后继续执行上面的命令,而不需要从我这边做任何更改。

,我想是 - 配置事情

  1. NUMBER_OF_THREADS
  2. TOTAL_RUNNING_TIME
  3. cassandra_read_prod_netflix_1.10.1.txt

上述第三点是,它应该不断改变文件名自动为我。让我们的示例 -

假设为我跑我的程序第一次,然后我将这个运行配置 -

java -jar CassandraLnP.jar config.properties NUMBER_OF_THREADS:10 TOTAL_RUNNING_TIME:30 > cassandra_read_prod_netflix_1.10.1.txt

而上述程序完成后,我的shell脚本应该再次启动相同的程序,但这次应该是这样的文件名有更改─

java -jar CassandraLnP.jar config.properties NUMBER_OF_THREADS:10 TOTAL_RUNNING_TIME:30 > cassandra_read_prod_netflix_1.10.2.txt

在第二种情况下,如果你仔细看,FIL e名称从1.10.1 to 1.10.2更改。如果没有我的修改,它会继续像这样继续运行。

而第三次它会像这个 -

java -jar CassandraLnP.jar config.properties NUMBER_OF_THREADS:10 TOTAL_RUNNING_TIME:30 > cassandra_read_prod_netflix_1.10.3.txt

是否有可能做使用shell脚本这件事情?

从那里我将运行我的shell脚本 -

[email protected]:~$ uname -a 
Linux phx7b 2.6.35-22-server #33-Ubuntu SMP Sun Sep 19 20:48:58 UTC 2010 x86_64 GNU/Linux 
+0

因此,您的脚本应首先形成命令并执行它。除文件名外,其他一切看起来都是不变的。您可以让脚本将文件名中的变量部分保存为文件(或某处),以便在下次运行时使用该文件。 – 2013-05-10 18:57:26

+0

是的,这是我所需要做的,我猜。你能否提供一个例子来说明如何做到这一点,因为我在shell脚本中不太舒服。 – ferhan 2013-05-10 19:03:50

回答

2

你的意思是这样我的机器的操作系统?

#!/bin/sh 

for ((i=0; i<3; i++)) 
    do 
    java -jar CassandraClientReadLnP.jar config.properties NUMBER_OF_THREADS:10 TOTAL_RUNNING_TIME:30 > cassandra_read_prod_netflix_1.10.$i.txt 
    done 
+0

顺便说一句,Google是你的朋友:https://www.google.fr/search?q=shell+for+loop – 2013-06-02 18:30:13