Linux的參數(shù)好多都是可以通過參數(shù)名空格參數(shù)值這種方式傳參的,比如find . -name *.php貌似Shell不提供這種方式,只能通過 $數(shù)字 的方式
2 回答

蕭十郎
TA貢獻(xiàn)1815條經(jīng)驗(yàn) 獲得超13個贊
你可以自行解析$@
參數(shù)實(shí)現(xiàn)解析。但是實(shí)際情況比這復(fù)雜。比如說,如果我需要一個-name test
的帶參數(shù)選項(xiàng),直接遍歷$@
的代碼就很復(fù)雜了。
正常一點(diǎn)的解決方案是用bash
的built-in getopts
或者命令getopt
(注意這倆名字不一樣)。
我把里面的樣例代碼貼這里。你可以將這部分代碼保存成腳本然后執(zhí)行之測試效果
# getopts :s:h表示這個命令接受2個帶參數(shù)選項(xiàng),分別是-h和-swhile getopts :s:h optdo case $opt in s) echo "-s=$OPTARG" ;; :) echo "-$OPTARG needs an argument" ;; h) echo "-h is set" ;; *) echo "-$opt not recognized" ;; esacdone

DIEA
TA貢獻(xiàn)1820條經(jīng)驗(yàn) 獲得超3個贊
可以遍歷一下你獲取到的參數(shù)列表$@
,具體里面怎么寫就看你,比如最簡單的:
#!/bin/bashfunction getName() { found=0; for item in $@ ; do if [[ $found == 1 ]]; then echo $item; found=0; break; fi if [[ "$item" == "-name" ]]; then found=1; fi done} getName $@
添加回答
舉報
0/150
提交
取消