2016-06-14 153 views
0

我有以下選擇:傳遞命令行選項 - 殼腳本

python runscript.py -O start -a "-a "\"-o \\\"-f/dev/sda1 -b256k -Q8\\\" -l test -p maim\"" 

的runScript需要-O-a,然後發送到剩餘的外殼腳本1

殼腳本1採取選項-a並應考慮將剩餘的\"-o \\\"-f/dev/sda1 -b256k -Q8\\\" -l test -p maim\"作爲shell腳本2的參數

shell腳本2採用參數-o,-l-p

誰能幫我用這種情景。我卡在shell腳本1考慮並開始解析參數-o了。

有一個簡單的方法來做到。應該維護調用2的shell腳本1的層次結構。

問候 西

回答

0

你給的命令是有點混亂。我正在推廣這種情況。這是你的意思嗎?

python runscript.py -p1 v1 -p2 v2 -p3 v3

  1. runscript.py將採取所有給定的參數。
  2. ,並呼籲shellsript_1.sh與選定PARAMS說-p2 v2
  3. ,然後調用shellscript_2.sh剩餘PARAMS說-p3 v3

我們可能需要對問題的準確的解釋。

+0

是的Pradip,你提到的是正確的,但讓我更清楚的選擇,因爲其中一些是一種字符串。 –

+0

-O啓動-a 「-a 」\「 - Ø\\\」 - F/dev的/ SDA1 -b256k -Q8 \\\」 -l測試-p致殘\ 「」 這樣runscript.py基於選項-O並且-a會考慮啓動shellscript_1.sh併爲其提供輸入:「-a」\「 - o \\\」 - f/dev/sda1 -b256k -Q8 \\\「-l test -p maim \ 「」。 shellscript_1將採取-a作爲選項和飼料的剩餘作爲字符串 「\」 - Ø\\\ 「 - F/dev的/ SDA1 -b256k -Q8 \\\」 -l測試-p致殘\ 「」 到shellscript_2。 SH。現在shellscript_2.sh會考慮-O並將「-f/dev/sda1 -b256k -Q8」,-l作爲測試,-p作爲maim和compute。這是理想的結果。希望這可以幫助。 –

0

的傳統方法在UNIX做,這是分裂繞樞軸參數列表(通常爲 - ),使得主腳本消耗所有的參數樞軸的左邊並保留其它參數爲其他腳本(S)。如果你在調用函數中有靈活性,我建議這樣做。

所以,如果runscript.py和兩個shell腳本都需要消耗一個單獨的參數列表,你的命令行看起來是這樣的:

python runscript.py <args for runscript> -- <args for 1st script> -- <args for 2nd script> 

例如(我只是你的猜測層次):

python runscript.py -O start -- -l test -p maim -- -f/dev/sda1 -b256k -Q8