2014-03-26 25 views
0

我有这样的事情如何分析我的命令参数到bash脚本

./foo.sh --textfile foo1.txt < foo2.txt 

如何可以解析f​​oo1.txt和foo2.txt到我的bash脚本

它不是安全使用$ 1和$ 2等,因为用户可以使用不同的参数序列,以运行该程序

例如:

./foo.sh < foo2.txt --textfile foo1.txt 
+2

的'< foo2.txt'是shell的一个命令(告诉它在程序启动之前将'foo2.txt'连接到你的程序的stdin),而不是你的程序。它不适用于您的程序阅读。 –

+0

1.您无法获得foo2.txt,请重新定向。这两条线完全不同。 –

+0

另请参阅http://mywiki.wooledge.org/BashFAQ/035,了解参数分析的最佳实践机制。 –

回答

0

正如一些评论者所指出的,你不能在foo2.txt

得到更广泛地回答你的问题,但是,你应该使用一个结构类似这样来解析您的命令行参数:

while [ "${#}" -gt 0 ] ; do 
    case "${1}" in 
    # Do some processing on the args you're expecting 
    # Maybe create some local variables and fill them as you go 
    esac 
    shift 
done