bash - 转换为数字

标签 bash shell

如何将字符串转换为数字?以下 Bash 脚本无法按预期工作。

#!/bin/sh

mynum="0.02"

if [[ $mynum -lt 1 ]];then
    echo "low"
else
    echo "high"
fi

错误消息

stack.sh: line 5: [[: 0.02: syntax error: invalid arithmetic operator (error token is ".02")

最佳答案

问题是 bash 通常只支持整数运算;您需要将 float 或复杂的数学转为 dcbc

在这种情况下您可能会作弊:

case $mynum in
0 | 0.* | .* | -*)
    echo low
    ;;
*)
    echo high
    ;;
esac

但这显然并不普遍适用。

关于bash - 转换为数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5959364/

相关文章:

bash - 如何按特定顺序生成带有大括号扩展的列表?

linux - "locate"mac OSX 的 Linux 命令替代

linux - 导出的变量未反射(reflect)在 "env"输出中

linux - 命令通过 'bash -c' 失败,但可以直接运行

qt - 什么(设置 PATH=...;%PATH :)=^)%) mean in a Windows shell script, 以及如何在 Qt5 nmake 构建的上下文中克服此行的失败?

bash - bash脚本if语句里面的命令

linux - 尝试 SSH 时设备的 ioctl 不合适

linux - 递归查找具有特定扩展名的文件

linux - 如何编写用于匹配文件的 bash 脚本

linux - 带反引号的远程 shell 命令的退出状态