bash中if语句条件的问题

bash中if语句条件的问题

我有以下 bash 脚本:

#!/bin/bash
  
echo "Enter your name: "
read name

if [ ${name}=="sam" ]  
then
        echo "Hi Sam!"
else
        echo "Who the hell are you?"
fi

我希望它显示“你到底是谁?”如果输入的名字不是“sam”。但它显示“嗨山姆!”即使我输入随机字符串。

这里有什么问题?

答案1

请阅读 bash 教程和使用条件表达式的手册,例如[ ]test

简而言之:

  1. 没必要用===就够了。
  2. 您必须在前后添加空格=,否则您将把表达式的右侧部分分配给左侧部分,而不是进行比较。
  3. 引用你的变量

最终结果:

if [ "${name}" = "sam" ]

相关内容