我正在学习bash脚本,我写了一些东西来更好地理解它。但是下面的代码确实让我很困惑。
#!/bin/bash
ifEqual() {
if [ "$3"="$1" ] ; then
echo "$2=$1"
else
echo "heiheihei"
fi
}
ifEqual "111" "666"
当我调用此.sh文件时,它将打印" 666 = 111"。但该功能甚至没有第三个参数。我希望这段代码可以打印出#he; heiheihei"。任何人都可以向我解释这里发生了什么?提前谢谢!
答案 0 :(得分:3)
您需要input
周围的空格才能正确解析=
个参数。
test
你编写它的方式,你用一个参数调用if [ "$3" = "$1" ]; then
,它只是测试该参数是否为非空。由于该参数的值为test
,因此它不为空,因此测试结果为真。