在 Red Hat Linux Apache Server 脚本中识别错误并查找变量的值

Identifying error and finding the value of a variable in Red Hat Linux Apache Server script

我是红帽菜鸟。我的 Apache 服务器不工作。当我打开错误日志时,我唯一看到的是“/usr/binall/SSFEXISTS:第 52 行:不是 tty:没有这样的文件或目录”

我做了一些研究,发现 SSFEXISTS 是我们公司使用的一个非常古老的软件所使用的脚本。我试图找出它输出错误的原因。

  1. 该错误可能来自脚本的哪一部分?

  2. 如何找到变量 $CPSICWDATE 的值。它在哪里定义?有没有办法让它回显值?

感谢您的帮助!

# Date created............: 8/24/95
# Last modification.......: 11-8-01 - added -PC option
#                           Now returns FOUND/NOT FOUND/DONT KNOW (if old cw)
# Purpose.................: Returns "FOUND" if the file exists "NOT FOUND"
#                           if it doesn't.

RET=0

TTY=`tty`
OLDSTTY=`stty -g 2>/dev/null`
trap 'stty $OLDSTTY <$TTY >/dev/null 2>&1;exit $RET' 0 2 3

CheckForPCFile()
{
  if [ $CPSICWDATE -gt 990947 ]
  then

    # loop until received Special End of Doc Code
   stty icrnl -clocal ixon -ixoff -ixany -opost -echo -isig icanon eof 
________________________________________
   <$TTY 2>/dev/null
    awk 'BEGIN {printf("%c%c%s%c%c", 235,188,"'""'",188,235);}' >$TTY
   while [ "$x" != FILEEXISTSYES ] && [ "$x" != FILEEXISTSNO ]
  do
    read x
  done
stty $OLDSTTY <$TTY 2>/dev/null
if [ "$x" = FILEEXISTSYES ] 
 then 
  echo FOUND
 else
  echo "NOT FOUND"
  RET=1
fi 
 else
echo "DONT KNOW"
RET=2
  fi
}

case "" in
  -[Pp][Cc]) CheckForPCFile "" ;;
      *) if [ -f "" ]
          then
            echo FOUND 
           else
            echo "NOT FOUND "
            RET=3
         fi ;;
esac
exit $RET   **NOTE:  This is line 52**
  1. 错误是由于这一行:

trap 'stty $OLDSTTY <$TTY >/dev/null 2>&1;exit $RET' 0 2 3

它在脚本退出时设置了一个 stty 命令 运行,它在第 52 行执行。

  1. 您可以打印出错误日志的值:

echo >&2 "The value of CPSICWDATE is $CPSICWDATE."

脚本正在输出错误,因为它不是来自 Web 服务器的 运行。它预计在连接到某种遗留系统的终端中 运行,例如通过 sshtelnet 或拨号。它本身并不致命。