假设有一个包含参数的字符串:
echo "-v foo -d --print bar-foo ba-z fOo"
如何获取以破折号开头的参数?
-v -d --print
替代:
STR="-v foo -d --print bar-foo ba-z fOo"
echo "$STR" | egrep -o -e "(^| )+--?[^ ]+" | sed -e 's/ //g'
将输出:
-v
-d
--print
如果要解析传递给脚本的选项,则应考虑使用getopt
.
参考:
$ 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"
)