我有一些用户可以传递给命令的参数,但我需要获取特定字符串后面的数字。
以下是我传递给bash脚本的参数的一些示例
xxx.sh cpus="12" memory="1500mb"
xxx.sh -cpus 12 -memory 1500mb
xxx.sh cpus=12 memory=1500mb
我想搜索第一次出现的cpus并返回数字12.
该数字可以是1到1000之间的任何数字。
答案 0 :(得分:0)
您可以在脚本中使用此正则表达式:
[[ $* =~ cpus[^[:digit:]]*([[:digit:]]+) ]] && echo "${BASH_REMATCH[1]}"
这将为您问题中显示的所有命令行参数打印12
。
这将匹配cpus
后跟0或更多非数字,然后匹配并捕获捕获的组#1中的1个或多个数字,即"${BASH_REMATCH[1]}"