2016-12-11 137 views
0

人。我想用兩個optinos在Linux中創建一個腳本,以便用戶選擇一種方式從多個文件中獲取一些數據。我想這樣的:linux shell腳本案例參數輸入

while [ "$1" != "" ]; do 

case $1 in 
    -o | --opth) grep OPTH *dk.lis | sed 's/eV_3dk.lis:### OPTICAL THEOREM CROSS SECTION### OPTH=/ /g' | sort -g; 
       shift  ;; 
    -i | --inel) grep REACT *dk.lis | sed 's/eV_3dk.lis:### INELASTIC CROSS SECTION### REACT=/ /g' | sort -g; 
       shift  ;; 
esac 
shift 

然而,該腳本返回

同時:表達式語法。

我知道職能的工作在不同的劇本很好,但我想只用一個腳本來兩個。 任何人都可以幫助我嗎?

回答

0

試試這個:

while [ "$1" != "" ] ; do 

case $1 in 
    -o | --opth) grep OPTH *dk.lis | sed 's/eV_3dk.lis:### OPTICAL THEOREM CROSS SECTION### OPTH=/ /g' | sort -g; 
       shift  ;; 
    -i | --inel) grep REACT *dk.lis | sed 's/eV_3dk.lis:### INELASTIC CROSS SECTION### REACT=/ /g' | sort -g; 
       shift  ;; 
esac 
shift 
done 
+0

感謝您的幫助,但你的建議是我嘗試同樣的,也許用「做」我想放在與代碼塊。當然,我必須用'完成'關閉'while',我確信這不是問題。 –