Linux Shell 脚本 if 语句

标签 linux bash shell

<分区>

正在学习Linux Shell脚本和流控

我坚持使用这个简单的脚本:

#!/bin/bash
x=2

if [ $x=5 ]; then
        echo "x equals 5."
else
        echo "x does not equal 5."
fi

执行命令时我在终端上得到的唯一响应是:x 等于 5。

谁能帮我找出代码中的错误?

提前致谢。

最佳答案

$x=5 是一个字符串,解释为 "2=5",它不为零,因此为真。

$x = 5 是两个字符串和它们之间的字符串相等运算符,计算结果为 false。

然而,这有点不安全,因为理论上 $x 可以为空,在这种情况下你会得到不合语法的测试 = 5;安全变体是 "$x"= 5

如果需要比较数字,请使用-eq 而不是=。例如,05 = 5 为假,但 05 -eq 5 为真。

关于Linux Shell 脚本 if 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25497869/

相关文章:

linux - awk 或 sed 用于在两个字符串之间搜索单词

Bash 脚本箭头键产生奇怪的字符

macos - 如何在 Unix 中处理名称中包含空格的文件列表?

linux - else 字符串匹配在 expect 中

linux - 现有的 Linux 模块符号

linux - 通过输入重定向 (<) 将参数传递给 Bash Shell 脚本

linux - Linux shell 中的嵌入式 Perl 脚本

linux - 使用 ls 和 grep 查找可执行文件

linux - 如何添加新的 Mime 类型并关联到新的应用程序?

c - 如何在Linux中覆盖控制台输出