function - Shell 脚本因函数语法错误而失败
问题描述
我的 shell 脚本因函数的语法错误而失败,其中包含一个简单的 if 语句。不确定我在下面的代码中缺少什么:
#!/bin/ksh
if [ $# -ne 1 ]; then
echo Param: [ENV]
exit 1
fi
ENV=$1
if [ $ENV == "qa" ]
then
HDFS_LOCATION="QA" && HIVE_DB="qa"
else
HDFS_LOCATION="prod" && HIVE_DB="prod"
fi
if [ $ENV == "prod" ]
then
ISILON="isilonprod"
else
ISILON="isilondev"
fi
check() {
if [$1 -ne 0]; then
echo "----------------------Error-------------------"
exit 1
else
echo "----------------------------------------------"
echo "----------------------Done--------------------"
echo "----------------------------------------------"
fi
}
echo "#################### CREATE TABLES IN HIVE ##################################"
hconnect -f --hivevar hdfs_location=${HDFS_LOCATION} --hivevar isilon=${ISILON} /tmp/nanda/deployment/poc_src_dallas_al.hql
check $?
echo "#################### END HIVE ONLY TABLES ##################################"
ERROR:
[root@myhost deployment]# sh deploy.ksh qa
'eploy.ksh: line 22: syntax error near unexpected token `{
'eploy.ksh: line 22: `check() {
解决方案
推荐阅读
- iis-10 - Windows Server 2022--IIS 无法修改文件共享
- c# - 在不同的时间速率下将耐用性降至 0?
- typescript - 类型“{}”上不存在属性“title”。TS2339
- python - SQLAlquemy:仅当特定项目不存在时才插入
- flutter - 将 ListView 的容器自定义为所需的结果
- javascript - '装饰器函数内设置的对象属性不会按预期持续存在。'
- opentok - OpenTok 归档到 Microsoft OneDrive
- c++ - Ubuntu上的vcpkg和cmake和vsc找不到包
- tableau-api - 如何在 datetrunc 中获取上一年的值?
- ansible - 使用条件渲染时出现Ansible模板奇怪错误