Unix脚本whoami / $ USER无法正常工作

时间:2013-04-29 19:26:24

标签: shell unix scripting

您好我的脚本如下。

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

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

3 个答案:

答案 0 :(得分:2)

-eq用于整数测试。 e.g:

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 :(得分:1)

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

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

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

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

代替。

答案 2 :(得分:1)

像这样:
if [[ `whoami` == "test" ]]; then  # Not 'whoami' -eq
    echo "test user" 
else
    echo "Not a test user" 
fi

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