说我有
npmv="3.4.5";
获取第一个点之前的所有字符的最简单方法是什么?在这种情况下,这将是“3”?
答案1
npmv="3.4.5"
major=${npmv%%.*}
printf 'The major version number is %s\n' "$major"
参数替换${variable%%pattern}
将删除最长pattern
与 的值匹配的后缀字符串$variable
。该模式被视为文件名通配模式,而不是正则表达式。这是一个标准参数替换,适用于所有 POSIX shell。
同样的事情,但使用单个将仅删除示例中字符串的%
结尾(.5
最短匹配后缀模式)。对于前缀字符串,请使用#
代替%
。
也可以看看POSIX 标准中有关参数扩展的部分,以及您的 shell 手册。