2013-08-01 62 views
-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 

庆典Script.sh密码。

错误消息是 - [password = password]:找不到命令。

如何解决?

+0

这是一个坏题目? – Steam

回答

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/[),其余的行是参数。 (test[的别名)。

+1

哈哈!谢谢。不知道这一点。 – Steam

+0

'''test'命令的同义词,而不是语法(尽管它非常模拟语法,不像'test',需要'''的最后一个参数),所以它必须与它的参数分开所有命令 – chepner