我正在尝试调试现有程序并找到一个没有 $ 符号前缀的 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)
想知道为什么也没有错误。