我有以下 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
。
简而言之:
- 没必要用
==
,=
就够了。 - 您必须在前后添加空格
=
,否则您将把表达式的右侧部分分配给左侧部分,而不是进行比较。 - 引用你的变量
最终结果:
if [ "${name}" = "sam" ]