2014-03-26 61 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