我有此代码:
#!/bin/env bash
output=$(echo -e 'get mykey\r' | nc localhost 11211 | awk 'NR==2');
echo "$output"
typeset -i output=0
if [ $output -eq 0 ];
then
echo "User exists"
else
echo "User doesn't exists"
fi
在上面的代码中,没有output=$(echo -e 'get mykey\r' | nc localhost 11211 | awk 'NR==2');
标志的行awk 'NR==2'
的实际输出是:
VALUE mykey 0 1
0
END
带有awk 'NR==2'
的代码回显“ $ output”输出的值为0或上面输出的第二行中的任何值。
即使输出的数字不是0,该代码也会始终为用户存在。
为什么比较在这里不起作用?
答案 0 :(得分:2)
除了语法问题,这是您正在做的事情:
output="some value"
output=0
if [ $output -eq 0 ]; then ...
在获取初始值后不要重新分配变量。