2013-04-29 83 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'