linux - 如果 "NULL"然后在 shell 脚本中使用 0

标签 linux shell scripting hive sqoop

我正在使用一个 shell 脚本来查询一个 hive 表

last_val="`hive -e "select max(id) from ${hivedatabase}.${table}"`"

echo var1="$last_val"

当 last_val = "NULL"时,我希望 last_val 为零

我已经像下面这样尝试了,但我仍然得到 Null

function value
{
   if [ "$last_val" = "NULL" ];then
        echo "0"
   elif [ "$last_val" != "NULL" ];then
        echo "$last_val"
   fi
}


echo var2="$(value)"

我想将这个值用于使用 sqoop 之类的增量导入

select * from testing.1234abc check column id > value

我怎样才能在 shell 脚本中实现它

最佳答案

我正在使用这种方法,试试看:

#!/bin/bash

hivedatabase=mydb
table=mytable
default_value="ZERO"

last_val=$(hive -e "set hive.cli.print.header=false; select max(id) from ${hivedatabase}.${table};")

if [[ "$last_val" == "NULL" ]] ; then 
  last_val="$default_value"
fi

echo "$last_val"

关于linux - 如果 "NULL"然后在 shell 脚本中使用 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43101613/

相关文章:

linux - RAM 信息与 dmidecode --type 17

linux - 简单的 bash 脚本,我怎样才能让它更短更好?

regex - 匹配包版本字符串在/bin/sh

linux - Bash:如何在包含多个条件的 while 循环中读取文件?

python - 以节省内存的方式在 Python 中从字典创建迭代器

opengl - 有没有办法以一种独立于语言的方式表达 OpenGL 指令?

linux - Linux 上的分布式事务

linux - 我可以等待特定的子进程在 perl 中终止吗

android - 使用 shell 脚本重启 Android 应用程序

c# - 在 CSharpScript 的脚本类中访问全局变量