-1

我想制作一个脚本,它应该接受一个参数并检查它是否等于给定的单词,然后相应地显示一条消息。我使用 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]: command not found。

如何解决?

4

1 回答 1

5

空格:

#!/bin/bash
if [ "$1" == "password" ]
then
echo correct password
else
echo wrong password
fi

后面的表达式if实际上是一个命令,命令由空格分隔。因此,您的命令["$1"=="password"]扩展为[password==password],显然不存在(/usr/bin/[password==password]任何人?)。

在我更正的代码中,命令是[(是的,有 a /bin/[),该行的其余部分是参数。

有关详细信息,请参阅man testtest是 的一种别名[)。

于 2013-08-01T18:32:13.833 回答