hive里面有个hive -e 命令可以传参数,但是当hql语句多了以后,整个shell脚本会显得比较凌乱,当然有人可能会说hive -f可以实现直接调用一个file,bingo的确如此,但是还是有个很大的缺陷,就是这个不能传参数了,不能传参数在实际的工作中是无法忍受的。于是想到了封装一个命令HiveF,既能直接传入file,又能传参数。其实实现很简单,下面就把代码分享出来。当然还不是很完善,抛砖引玉吧。
#!/bin/bash
. /etc/profile
cat $1 > $1.tmp
for arg in “$@”
do
echo “arg “$arg
flag=`echo $arg | grep ‘-‘`
if [ $arg != $1 ];then
if [ $flag ];then
tmp=`echo $flag | sed s/-//`
else
sed -i s/{$tmp}/$arg/g $1.tmp
echo “nothing”
fi
fi
done
hive -f $1.tmp
rm -f $1.tmp
希望能对大家又说帮助。
原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/192434.html