2016-12-11 154 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',我确信这不是问题。 –