【发布时间】:2020-05-28 02:28:16
【问题描述】:
我使用三种不同的 ide 编写了以下代码。代码很简单,它在 hive 上创建数据库,但数据库名称将是动态的。
#!/bin/bash
year=`date +%Y`
month=`date +%m`
day=`date +%d`
echo ${year}
echo ${month}
echo ${day}
dbname=dynamic_hive_${year}_${month}_${day}
echo ${dbname}
hive -e "create database if not exists ${dbname}; use ${dbname}; drop table bins_1; CREATE TABLE bins_1 (firstname string);"
我在我们的环境中上传了这段代码并使用 java 程序运行它。 java 程序使用 java Runtime.exec 来运行脚本。但是,当我看到日志时,结果如下:
在这里,我在每个回显之间都有一个空格,并且数据库名称也不如预期。如果我手动运行上传的文件做 sh testfile.sh,那么我得到以下结果:
数据库打印出来了,但它很奇怪,不像预期的那样。在错误中,我们可以看到无法解析数据库。我认为新行出现在 2020 年之后,因此不会被解析。
如果我在我的服务器中复制相同的代码,通过执行 vim 并运行它,那么它运行得非常好。我很困惑,我真的不知道我错过了什么。这应该相当简单,但我错过了一些东西。如果有人可以帮助我,我将不胜感激。
【问题讨论】:
标签: bash shell visual-studio-code notepad++