首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >整数表达式,SAP HANA停止脚本

整数表达式,SAP HANA停止脚本
EN

Stack Overflow用户
提问于 2022-10-20 14:39:51
回答 1查看 25关注 0票数 0

我目前正在构建一个bash脚本来停止我们的SAP HANA数据库,然后检查它是否成功地停止了它。这是一个正在进行的工作,也是我写的第一个“更长”的脚本。

出于某种原因它告诉我:

testscript.sh:第19行:[::所期望的整数表达式

为什么会这样?请看我下面的剧本

代码语言:javascript
复制
#### errocodes
#### 0  hanadb state = OK
#### 10 hanadb state = STOPPED
#### 20 hanadb state = WARNING
#### 30 hanadb state = ERROR

# stop HANA DB
sudo /usr/sap/hostctrl/exe/sapcontrol -nr 00 -function Stop

# check hana db state
echo "Checking if Service is active"
HANADBSTATUS=`sudo /usr/sap/hostctrl/exe/sapcontrol -nr 00 -function GetProcessList`
if [ "$HANADBSTATUS" = GRAY ]
then
    echo "Hana DB is stopped."
    exit 10
else
    sleep 5
    while [ "$HANADBSTATUS" != GRAY ] && [ "$i" -lt 4 ]
        do
            echo "Warning: There seems to be a problem with stopping the HANA DB. Will retry 3-Times until Script will abort. This is retry Number: $i" 
            sudo /usr/sap/hostctrl/exe/sapcontrol -nr 00 -function Stop
            sleep 20
            HANADBSTATUS=`sudo /usr/sap/hostctrl/exe/sapcontrol -nr 00 -function GetProcessList`
            ((i++))
            if [ "$i" = 3 ]
                then
                    echo "Error: retried 3-Times. Couldn't stop DB. Exiting Script."
                    echo "Script aborts with Error 0"
                    exit 0
            fi
        done
    fi
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-10-20 14:50:55

set -x之后添加sudo ... (启用调试模式),运行脚本并检查调试输出。

我的猜测是,[ "$i" -lt 4 ]正在生成错误,因为变量i (最初)是未定义的,因此测试变成了[ "" -lt 4 ],生成了您所看到的相同的错误:

代码语言:javascript
复制
$ typeset -p i
-bash: typeset: i: not found

$ if [ "$i" -lt 4 ]; then echo yes;fi
-bash: [: : integer expression expected

启用调试模式,以显示使用未定义的i测试的样子

代码语言:javascript
复制
$ set -x

$ if [ "$i" -lt 4 ]; then echo yes;fi
+ '[' '' -lt 4 ']'
-bash: [: : integer expression expected

一个快速的解决方法是确保iwhile循环之前被初始化,例如:

代码语言:javascript
复制
sleep 5
i=0

while [ "$HANADBSTATUS" != GRAY ] && [ "$i" -lt 4 ]
do
    ....
done
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74141761

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档