Getopts
解析 getopts
我想轉義args
SOMETEXT
中的第一個字元串。getopts
但我只能在第一個例子中做到這一點。我怎樣才能使它在第二個例子中起作用?
while getopts p: opt do case $opt in p) result=$OPTARG;; esac done echo "The result is $result "
範例 1:
run_test.ksh -p3 SOMETEXT The result is 3
範例 2:
run_test.ksh SOMETEXT -p3 ./run_test.ksh: line 10: result: parameter not set
這是使用
getopts
. 參數及其參數必須位於任何其他文本之前。如果您知道第一個詞是
SOMETEXT
,您可以將其從處理的參數列表中刪除getopts
:if [[ 'SOMETEXT' == "$1" ]] then echo "Found SOMETEXT at the beginning of the line" shift fi while getopts p: opt do case $opt in p) result=$OPTARG;; esac done echo "The result is $result "