首页 > 解决方案 > 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() {

标签: functionshellscriptingksh

解决方案


推荐阅读