shell中的算术比较
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell中的算术比较相关的知识,希望对你有一定的参考价值。
我想比较一个shell脚本(sh)中的两个数字值,但它不起作用:
#!/bin/sh
let a=30
let b=100
let x=$a-$b
echo $a $b $x
[ $a < $b ] && { echo ok; }
那输出:
30 100 -70
./x: line 6: 100: No such file or directory
答案
我认为应该是-lt(代表小于)而不是“<”。 “<”用于字符串比较。
编辑:实际上看着这个现在似乎很清楚问题是什么。 “<”字符执行文件重定向,这就是shell尝试执行的操作。您可以通过执行来转义该字符,而不是如最初所述,它将进行字符串比较而不是数字比较。
另一答案
替换<with -lt
而且,失去了“让”。这不是基本的。比尔盖茨和史蒂夫鲍尔默(开发者!)与这个宇宙毫无关系。
另一答案
“let”在shell中完全没问题,与M $ basic或者什么无关。 @OP,您可以使用bc来比较数字,特别是如果您还要比较浮点数。有关类似示例,请参阅here
另一答案
#!/bin/sh
let a=30
let b=100
let x=$a-$b
echo $a $b $x
if(($a < $b)) then
echo ok
fi
以上是关于shell中的算术比较的主要内容,如果未能解决你的问题,请参考以下文章