KSH 쉘 스크립트에서 변수를 호출하는 방법

KSH 쉘 스크립트에서 변수를 호출하는 방법
#!/bin/sh
# This script is for checking the status of SSHD2 Number of  connections

CHKOUT="Please also Check the Number of ORPHAN / DEFUNCT Process on `hostname` :"
DFOUT=`/usr/bin/ps -eaf | grep defucnt`
SHCOUNT=`/usr/bin/pgrep sshd2|wc -l`
if [ $SHCOUNT -gt 150 ]

then
    mailx -s "Warning! : `hostname` has more than $SHCOUNT  SSHD2 Connections running Please Check!" [email protected]  << EOF

`echo  $CHKOUT`
`echo "=========================================================="`
`echo  $DFOUT`

EOF
fi

========================================

"DFOUT" 변수의 출력을 얻을 수 없습니다. 올바른 방법을 제안해 주실 수 있나요?

===================
Edited code that is working nice..

#!/bin/sh
# This script is for checking the status of SSHD2 Number of  connections
CHKOUT="Please also Check the Number of ORPHAN / DEFUNCT Process on `hostname` :"
PS=`/usr/bin/ps -eaf | grep -v grep| grep defunct`
SHNT=`/usr/bin/pgrep ssh|wc -l`

if [ $SHNT -gt 15 ]

then

        mailx -s "Warning!  `hostname` has more than $SHNT SSHD2 Connections running Please Check!"  [email protected]   << EOF
        Hi Team,

        $CHKOUT
        ===========================================================
        $PS

EOF
fi

답변1

문제는 echo 명령이 작성되어야 한다는 사실과 관련이 있을 수 있지만 mailx STDIN인라인 백틱을 사용하여 이를 수행하는 방식에 문제가 있을 수 있습니다. 메시지 본문을 다음과 같이 연결해 보겠습니다 mailx.

...
then
    SEP="============================================"
    BODY="$CHKOUT\n$SEP\n$DFOUT"
    echo $BODY | mailx -s "Warning! : ..."
fi

관련 정보