2013-05-10 92 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