#!/bin/bash
echo "Int. a number"
read num1
echo "Int. another numer"
read num2
if ["$num1"="$num2"]; then
echo "Equals"
else
echo "Dif"
fi
if["$num1"<0]; then
echo "The number $num1 is negative"
else if ["$num2"<0]; then
echo "The number $num2 is negative"
fi
#
Run Code Online (Sandbox Code Playgroud)
这段代码不起作用,当我看到数字是否小于 0 时,我出了点问题。
谢谢
错误的语法。请阅读有关[
命令 ( help [
/ help test
)的文档
每个参数必须是它自己的参数,即您必须在它们之间使用空格:[ "$num1" == "$num2" ]
。第一次检查没有看到错误的原因是它试图找到一个名为 (with num1=3 and num2=4) 的命令[3==4]
,该命令不存在,因此表达式的计算结果为 false。在第一次检查时,您编写了一个<
,它是用于输入重定向的 shell 运算符。它尝试打开4]
在大多数情况下不存在的文件。
但是在比较数字时,您应该使用-eq
和类似的,==
用于字符串比较:[ 3 == 3.0 ]
为假,[ 3 -eq 3.0 ]
为真。