2013-08-01 105 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