我正在写一个 Bash 脚本。我有一个变量,它是一个浮点值。例如:
x=2099.2
我需要小数点前的值,即只有2099
.
您可以使用以下 shell 参数扩展:
${x%%.*}
这会从第一个点中删除所有内容。
现场观看:
$ v=203.4
$ echo ${v%%.*}
203
$ v=2.3.4
$ echo ${v%%.*}
2
从Bash Reference Manual → 3.5.3 Shell Parameter Expansion:
${参数%%word}
单词被扩展以产生一个模式,就像在文件名扩展中一样。如果模式匹配参数扩展值的尾随部分,则扩展的结果是删除了最长匹配模式的参数值。如果 parameter 是 '@' 或 '<em>',模式移除操作将依次应用于每个位置参数,扩展是结果列表。如果 parameter 是下标为 '@' 或 '</em>' 的数组变量,则模式移除操作将依次应用于数组的每个成员,并且展开是结果列表。