我正在编写一个脚本来将命令传递给控制台,并将输出重定向到日志以进行分析。这是我现在的剧本。
#!/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功能正常工作。
答案 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
}