shell ksh如果输出未找到,为什么?

wpcxdonn  于 2023-04-21  发布在  Shell
关注(0)|答案(1)|浏览(152)

为什么输出中有not found?我试图找到答案,但我不清楚,我找不到正确的条件为我工作。

#!/bin/ksh

a="10.58.0.32"
b=$a
echo "The value of a = $a "

if ["$a"="$b"];
then
echo "if condition met"
fi

输出为:

The value of a = 10.58.0.32
./if-test[7]: [10.58.0.32=10.58.0.32]:  not found
bis0qfac

bis0qfac1#

if [ "$a" = "$b" ];是正确的写法。方括号过去是没有语法部分的,但是(一旦外部)实用程序的名称。现在它作为shell内置实现,但仍然需要与以前相同的语法,因此您需要这些空格将“程序名称”与其参数分开。这也导致关闭括号没有语法部分,但程序调用[只是希望最后一个参数是一个结束方括号的情况下,程序真的被称为[ .(现在)内置的util test是另一个链接到同一个programm,但不希望结束括号作为最后一个参数,仅此而已.
如果不使用空格(或制表符),shell将查找某个名为[10.58.0.32=10.58.0.32]的实用程序,而这个实用程序肯定不存在(找不到)

相关问题