我正在尝试使用此命令行
expr 916.1 '<' 1024
Run Code Online (Sandbox Code Playgroud)
但我得到了false回应(返回 1)
mur*_*uru 12
expr 不支持浮点数:
操作数是整数或字符串。整数由一位或多位十进制数字组成,带有可选的前导“-”。expr 将出现在操作数位置的任何内容转换为整数或字符串,具体取决于对其应用的操作。
并且:
expr 首先尝试将两个参数转换为整数并进行数字比较;如果任一转换失败,它将使用 LC_COLLATE 语言环境指定的字符整理序列进行字典比较。
如果要比较浮点数,请使用类似的内容bc(使用“0 为假,1 为真”约定):
expr1 < expr2
The result is 1 if expr1 is strictly less than expr2.
Run Code Online (Sandbox Code Playgroud)
所以:
$ bc <<< '(916.1 < 1024)'
1
$ if [ "$(bc <<< '(916.1 < 1024)')" -eq 1 ]; then echo yes; else echo no; fi
yes
Run Code Online (Sandbox Code Playgroud)