在ksh函数中使用EOF

时间:2015-12-01 16:35:39

标签: linux ksh eof

我正在编写一个脚本来将命令传递给控制台,并将输出重定向到日志以进行分析。这是我现在的剧本。

#!/bin/ksh
gg_sci(){
$GG_HOME/ggsci <<EOF > /home/org/obey.log
obey /home/org/mon.oby
EOF
}
check_st(){
status=`cat obey.log | grep -i $1 | awk '$2!=""{print $2}'`
echo $status
if [ $status -eq "RUNNING" ]
then
    echo "GG process $1 is running"
    exit 0
}
gg_sci
check_st test

如果我将2个函数放入2个不同的脚本中,则此脚本有效。当我将它们放入一个脚本时,我收到错误

  

ksh:0403-057语法错误:`}&#39;不是预期的。

经过调试,我已确定EOF正在读取关闭该功能的}。我不确定我做错了什么,如果脚本中的唯一内容是EOF功能正常工作。

1 个答案:

答案 0 :(得分:2)

您错过了fi来关闭if

此外,-eq用于检查数字相等性,比较字符串使用=

check_st(){
    status=`cat obey.log | grep -i $1 | awk '$2!=""{print $2}'`
    echo "$status"
    if [ "$status" = "RUNNING" ]
    then
        echo "GG process $1 is running"
        exit 0
    fi
}