如何在shell中传递特殊参数?

  • 本文关键字:参数 shell shell hive sh
  • 更新时间 :
  • 英文 :

sh abc.sh "--hiveconf db_name=${DB_NAM}"

我正在尝试运行这个命令,但在我的shell文件中我没有得到DB_NAM

在我的shell中它以

的形式运行
--hiveconf db_name=

——hiveconf是hive命令的参数,在将变量传递给shell脚本时不需要——hiveconf。

如果你想传递已命名的变量给shell脚本,你可以用更干净的方式传递变量:

sh abc.sh db_name=${DB_NAM}

解析shell脚本中的参数:

#Inside the shell script
#parse parameters
for PARAM in "$@"
do
KEY=$(echo $PARAM | cut -f1 -d=)
VALUE=$(echo $PARAM | cut -f2 -d=)   
case "$KEY" in
db_name)              db_name=${VALUE} ;;
something_else)       something_else=${VALUE} ;;     
*)   
esac    
done
#Now you can call Hive with parameter:    
hive -hiveconf db_name="$db_name" -f myscript.sql

和在hive脚本myscript。sql:

select * from ${hiveconf:db_name};

相关内容

  • 没有找到相关文章

最新更新