我希望您能用BASH正则表达式从下面的命令中提取“db”参数。然而,参数的顺序不被保证。由于某些原因,我无法完全让它正常工作。
到目前为止,我已有以下内容:
到目前为止,我已有以下内容:
regex="--db (.*)($| --)"
[[ $@ =~ $regex ]]
DB_NAMES="${BASH_REMATCH[1]}"
# These are example lines
somecommand --db myDB --conf /var/home # should get "myDB"
somecommand --db myDB anotherDB manymoreDB --conf /home # should get "myDB anotherDB manymoreDB"
somecommand --db myDB # should get "myDB"
somecommand --db myDB anotherDB # should get "myDB anotherDB"
您对正则表达式有什么建议吗?
([^-]*)
代替(.*)
,或者使用AWK或SED。 - Fabricatorgetopt
或getopts
来解析命令行参数? - seven7e