1

嗨,我有如下脚本。

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

即使我的用户不是文本,这也会返回测试用户。如果有人能指出我的愚蠢错误,那就太好了。

4

3 回答 3

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
于 2013-04-29T19:31:04.487 回答
1
像这样:
if [[ `whoami` == "test" ]]; then  # Not 'whoami' -eq
    echo "test user" 
else
    echo "Not a test user" 
fi

不要使用单引号和 '-eq'

于 2013-04-29T22:13:06.237 回答
1

您正在使用单引号代替反引号:

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

为了提高可读性(以及更容易嵌套,如果适用),请使用

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

反而。

于 2013-04-29T19:28:20.340 回答