0

假设有一个包含参数的字符串:

echo "-v foo -d --print bar-foo ba-z fOo"

如何获取以破折号开头的参数?

-v -d --print

4

2 回答 2

2

替代:

 STR="-v foo -d --print bar-foo ba-z fOo"
 echo "$STR" | egrep -o -e "(^| )+--?[^ ]+" | sed -e 's/ //g'

将输出:

-v
-d
--print

如果要解析传递给脚本的选项,则应考虑使用getopt.

参考:

于 2013-06-29T14:07:48.990 回答
0
$ str="-v foo -d --print bar-foo ba-z"
$ for i in $str; do test ${i::1} = - && echo $i; done
-v
-d
--print

请注意,这是一个不能引用变量的实例,因为您希望进行分词。(即不写for i in "$str"

于 2013-06-29T13:55:56.670 回答