如果还有,则在shell脚本中进行数字比较

时间:2019-06-18 13:20:17

标签: shell awk

我有此代码:

#!/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,该代码也会始终为用户存在。

为什么比较在这里不起作用?

1 个答案:

答案 0 :(得分:2)

除了语法问题,这是您正在做的事情:

output="some value"
output=0
if [ $output -eq 0 ]; then ...

在获取初始值后不要重新分配变量。