Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 如果;空";然后在shell脚本中使用0_Linux_Shell_Scripting_Hive_Sqoop - Fatal编程技术网

Linux 如果;空";然后在shell脚本中使用0

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" !=

我正在使用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" != "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
命令打印零