2014-01-22 87 views
0

值2個變量我有2個變量說shell腳本:比較具有含空格

echo $a 
[5] [2] [3] 
echo $b 
[9] [3] [2] 

很多更給它。我想比較這兩個變量。

do <1> if they are equal 
do <2> if they are unequal 

我該怎麼做?

+1

歡迎來到Stack Overflow。請儘快閱讀[關於]頁面。你嘗試了什麼?你正在使用哪個外殼?答案的關鍵是在變量周圍使用雙引號 - 可與所有shell一起使用。一些shell提供了避免使用引號的機制 - 例如''bash'可以用[[''operator。 –

回答

2

您想比較$a$b包含空格。使用if-then-elsedouble-quote您的變量:

if [ "$a" = "$b" ]; then 
    echo '$a equals $b' 
else 
    echo '$a and $b differ' 
fi 
+0

難道只是'='來比較字符串等價嗎? – Ross

+0

'='和'=='在這種情況下是等價的。你可以使用任何一個。 '='符合POSIX標準,如果你來自另一種語言,'=='是明確的。 http://www.gnu.org/software/bash/manual/html_node/Bash-Conditional-Expressions.html – grebneke

+0

它取決於shell;原Bourne shell沒有使用'=='; 'bash'呢。我不確定'ksh'或'csh'。 –