您好我的脚本如下。
if [[ 'whoami' -eq "test" ]]; then
echo "test user"
else
echo "Not a test user"
fi
即使我的用户不是文本,也会返回测试用户。如果有人可以指出我的愚蠢错误,那就太棒了。
答案 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'