我想在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
答案 0 :(得分:4)
我认为应该是-lt(代表小于)而不是“&lt;”。 “&LT;”用于字符串比较。
编辑:实际上现在看这个问题似乎很明显。 “&lt;”字符执行文件重定向,这是shell尝试执行的操作。您可以通过执行\来履行该角色。相反,但最初说明将进行字符串比较而不是数字比较。
答案 1 :(得分:0)
替换&lt;用-lt
另外,失去了“让”。这不是基本的。比尔盖茨和史蒂夫鲍尔默(开发者!)与这个宇宙毫无关系。
答案 2 :(得分:0)
“let”在shell中完全没问题,与M $ basic或者什么无关。 @OP,您可以使用bc来比较数字,特别是如果您还要比较浮点数。有关类似示例,请参阅here
答案 3 :(得分:-1)
#!/bin/sh
let a=30
let b=100
let x=$a-$b
echo $a $b $x
if(($a < $b)) then
echo ok
fi