2016-11-23 108 views
0

我可能有現在一個大的邏輯思維障礙的巴什比較,我只是不明白這一點。我希望有人能幫助我。兩個字符串

我在寫帶有參數的腳本,第一個參數需要被「激活」或「禁用」,所以我寫了這個:

if [ "$1" != "activate" ] || [ "$1" != "deactivate" ]; then 
    echo $1 
    exit 1 
fi 
echo "Hello the first argument is $1" 

所以,如果我現在運行「myscript.sh激活」本輸出是:

[email protected]$ ./myscript.sh activate 
activate 

但輸出應該是「你好第一個參數是激活」 ......

有人可以解釋我什麼,我做錯了還是什麼,我需要改變?

感謝

+3

你這是「激活」第一個參數是絕對不等於「取消」。這使得第二比較設置爲true。記住,你在使用之間或運算符。 –

+1

'[ 「$ 1」!= 「停用」]'是真實的。 – mouviciel

+0

好的,謝謝,我想我現在:) – Damon

回答

3

我建議使用:

if [ "$1" != "activate" ] && [ "$1" != "deactivate" ]; then