我想创建一个脚本,该脚本应该接受一个参数并检查它是否等于给定的单词然后相应地显示一条消息。我使用ubuntu OS的bash shell。我根据教程尝试了一些东西 - http://www.tech-recipes.com/rx/209/bournebash-shell-scripts-string-comparison/但它失败了。
#!/bin/bash
if ["$1"=="password"]
then
echo correct password
else
echo wrong password
fi
bash Script.sh密码。
错误消息是 - [password = password]:找不到命令。
如何解决?
答案 0 :(得分:5)
空格:
#!/bin/bash
if [ "$1" == "password" ]
then
echo correct password
else
echo wrong password
fi
if
之后的表达式实际上是一个命令,命令由空格分隔。所以你的命令["$1"=="password"]
会扩展为[password==password]
,而这种命令似乎不存在(/usr/bin/[password==password]
任何人?)。
在我更正的代码中,命令为[
(是的,有一个/bin/[
),其余部分是参数。
有关详细信息,请参阅man test
(test
是[
的一种别名。)