如果其他,则为 Shell 脚本

use*_*104 2 bash shell-script

#!/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 时,我出了点问题。

谢谢

Mar*_*ian 5

错误的语法。请阅读有关[命令 ( help [/ help test)的文档

每个参数必须是它自己的参数,即您必须在它们之间使用空格:[ "$num1" == "$num2" ]。第一次检查没有看到错误的原因是它试图找到一个名为 (with num1=3 and num2=4) 的命令[3==4],该命令不存在,因此表达式的计算结果为 false。在第一次检查时,您编写了一个<,它是用于输入重定向的 shell 运算符。它尝试打开4]在大多数情况下不存在的文件。

但是在比较数字时,您应该使用-eq和类似的,==用于字符串比较:[ 3 == 3.0 ]为假,[ 3 -eq 3.0 ]为真。

  • -eq、-ne、-lt、-gt、-le、-ge。请参阅 bash 联机帮助页,**“条件表达式”** 部分 (3认同)