if条件下的位置参数不应该像

时间:2016-04-14 00:55:34

标签: bash

我正在学习bash脚本,我写了一些东西来更好地理解它。但是下面的代码确实让我很困惑。

#!/bin/bash
ifEqual() {
   if [ "$3"="$1" ] ; then
   echo "$2=$1"
   else
   echo "heiheihei"
   fi
}
ifEqual "111" "666"

当我调用此.sh文件时,它将打印" 666 = 111"。但该功能甚至没有第三个参数。我希望这段代码可以打印出#he; heiheihei"。任何人都可以向我解释这里发生了什么?提前谢谢!

1 个答案:

答案 0 :(得分:3)

您需要input周围的空格才能正确解析=个参数。

test

你编写它的方式,你用一个参数调用if [ "$3" = "$1" ]; then ,它只是测试该参数是否为非空。由于该参数的值为test,因此它不为空,因此测试结果为真。