小编San*_*Ram的帖子

一个没有 $ 符号的 Unix AIX 变量?

我正在尝试调试现有程序并找到一个没有 $ 符号前缀的 if 条件。

值是:

dt_val=1234
prev_dt_val=1234
Run Code Online (Sandbox Code Playgroud)

如果条件如下:

if [ dt_val -eq prev_dt_val ]
then
  echo "Equal"
else
  echo "Not equal"
fi

Result:
Equal
Run Code Online (Sandbox Code Playgroud)

有人对没有 $ 符号的情况如何正常工作有所了解吗?
不应该是..吗?

[ $dt_val -eq $prev_dt_val ]
Run Code Online (Sandbox Code Playgroud)

比较字符串值时,相同的条件失败。这是否意味着,此条件不需要数字的 $ 符号?

附加信息:
按照建议将字符串与 == 进行比较:

dt_val="abcd"
prev_dt_val="abcd"

if [ dt_val == prev_dt_val ]
> then
> echo Equal
> else
> echo Not equal
> fi
Not equal
Run Code Online (Sandbox Code Playgroud)

外壳信息:

echo $SHELL
/usr/bin/ksh
Version M-11/16/88f
Run Code Online (Sandbox Code Playgroud)

想知道为什么也没有错误。

ksh aix test numeric-data variable

3
推荐指数
1
解决办法
289
查看次数

标签 统计

aix ×1

ksh ×1

numeric-data ×1

test ×1

variable ×1