嗨,我有如下脚本。
if [[ 'whoami' -eq "test" ]]; then
echo "test user"
else
echo "Not a test user"
fi
即使我的用户不是文本,这也会返回测试用户。如果有人能指出我的愚蠢错误,那就太好了。
-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
if [[ `whoami` == "test" ]]; then # Not 'whoami' -eq
echo "test user"
else
echo "Not a test user"
fi
不要使用单引号和 '-eq'
您正在使用单引号代替反引号:
if [[ `whoami` -eq "test" ]]; then # Not 'whoami'
为了提高可读性(以及更容易嵌套,如果适用),请使用
if [[ $(whoami) -eq "test" ]]; then
反而。