我在寫這將傳遞命令行參數,參數
- 行爲不同基於傳遞的第一個參數一個bash腳本檢測內容(沒有概率到目前爲止)
- 通過其餘該參數的命令(沒有概率到目前爲止)
- 行爲不同,如果參數包含字符串
它看起來像:
現在[[ "${1}" = "-h" || "${1}" = "--help" ]] && echo -e "somehelp"
[[ "${1}" = "echo" ]] && echo ${*:2}
[[ "${1}" = "emerge" ]] && emerge -uDN ${*:2}
some-magic-here
,如果我做
myscript emerge -a whatever whatever2 --option
它將運行
emerge -uDN -a whatever whatever2 --option
但是,如果認爲 「無所謂」 是包含*
一個字符串,如
myscript emerge -uDN -a whatever/* whatever2 --option
我想讓它運行
emerge -uDN -a $(eix -u --only-names whatever/*) whatever2 --option
改爲。有小費嗎?
這是不可能的,因爲Bash甚至在它傳遞到腳本之前展開'*'。除非你在引號中用''whatever/*「'寫出 – user123444555621 2014-09-05 01:18:51
這是可能的,你只需引用你的輸入。即'myscript emerge -uDN -a'whatever/*'whatever2 --option'或者變成一團糟。 – 2014-09-05 05:19:50