2013-04-29 82 views
1

嗨,我有腳本如下。

if [[ 'whoami' -eq "test" ]]; then 
    echo "test user" 
else 
    echo "Not a test user" 
fi 

即使我的用戶不是文本,也返回測試用戶。如果有人能指出我愚蠢的錯誤,那將是非常棒的。

回答

1

你來代替反引號使用單引號:

if [[ `whoami` -eq "test" ]]; then # Not 'whoami' 

爲了提高可讀性(和更容易築巢,如果適用),使用

if [[ $(whoami) -eq "test" ]]; then 

代替。

2

-eq用於整數測試。 例如: -

kent$ [[ "a" -eq "b" ]] && echo "y" || echo "n"                               
y 
kent$ [[ 34 -eq 35 ]] && echo "y" || echo "n"                                
n 

嘗試:

kent$ [[ "a" == "b" ]] && echo "y" || echo "n"                               
n 
1
就像這樣:
if [[ `whoami` == "test" ]]; then # Not 'whoami' -eq 
    echo "test user" 
else 
    echo "Not a test user" 
fi 

不使用單引號和 '-eq'