我尝试在 bash 中减去 dot ( . ) 之前的第一个字符串。

例如:

1.2.3 -> 1
11.4.1 -> 11

我使用了基于 docs 的以下命令:
s=4.5.0
echo "${s%.*}"

但它输出 4.5 而不是 4 。我不明白。

这是为什么?

最佳答案

您需要使用 %% 从末尾删除最长的匹配:

$ echo "${s%%.*}"
4

来自 the docs :

关于bash - 提取点前的子串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40738346/

10-09 03:07