Linux 如果;空";然后在shell脚本中使用0
我正在使用shell脚本查询配置单元表Linux 如果;空";然后在shell脚本中使用0,linux,shell,scripting,hive,sqoop,Linux,Shell,Scripting,Hive,Sqoop,我正在使用shell脚本查询配置单元表 last_val="`hive -e "select max(id) from ${hivedatabase}.${table}"`" echo var1="$last_val" 当最后一个值为NULL时,我希望最后一个值为零 我已经尝试了下面的方法,但仍然没有成功 function value { if [ "$last_val" = "NULL" ];then echo "0" elif [ "$last_val" !=
last_val="`hive -e "select max(id) from ${hivedatabase}.${table}"`"
echo var1="$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"
我正在使用这种方法,请尝试:
#!/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"
您是否真的从数据库中获取了单词NULL
?。如果是这样,它是Null
还是Null
?@jnevil我用bash-x yourscript
获得Null调用,从而记录每个命令及其参数,包括[
用于运行测试的命令很可能是有用的。如果有隐藏字符正在抛出测试,则会显示出来。@jnevil我相信空值是string@CharlesDuffy我认为NULL是字符串。您是否真的从数据库中获取了单词NULL
。如果是,是NULL
还是NULL
?@JNevill我正在使用bash-xyourscript
获得NULL调用,因此记录每个命令及其参数,包括[
用于运行测试的命令很可能是有用的。如果有隐藏字符正在抛出测试,则会显示出来。@jnevil我相信空值是string@CharlesDuffy我相信空值是一个字符串echo“$last\u val”
比echo$last\u val
更真实地表示变量的内容,请参见。@leftjoin我查询的表是一个空表。因此,当我查询时,它会给我NULL,所以我要做的是,如果它为NULL,则将last val作为零,否则返回lastval@leftjoin我相信空值是一个string@Charles达菲,谢谢,您是对的,我已经修复了它。@Active\u用户请查看我更新的答案。只需用您的值替换变量default\u值
值。我已经检查了它的工作情况,echo
命令打印零echo“$last\u val”
比echo$last\u val更真实地表示变量的内容,请参见。@leftjoin我查询的表是一个空表。因此,当我查询时,它会给我NULL,所以我要做的是,如果它为NULL,则将last val作为零,否则返回lastval@leftjoin我相信空值是一个string@Charles达菲,谢谢,您是对的,我已经修复了它。@Active\u用户请查看我更新的答案。只需将变量default\u值
值替换为您的值。我已经检查了它的工作情况,echo
命令打印零