디버그 오류: ./vamsitest.sh: 10행: [: `]' 누락

디버그 오류: ./vamsitest.sh: 10행: [: `]' 누락

스크립트: 다음과 같은 오류가 발생합니다. 기본적으로 메모리가 일정 한도를 초과하면 이메일을 받아야 합니다.

error : ./vamsitest.sh: line 10: [: missing `]'

 

#! /bin/bash

# Total memory space details

echo "Memory Space Details"
free -t -m | grep "Total" | awk '{ print "Total Memory space : "$2 " MB";
        print "Used Memory Space : "$3" MB";
        print "Free Memory : "$4" MB";
    }'
if [ "$3" MB" >10000 MB];
then
    email -s "memory utilization is high" [email protected]
fi

답변1

쉘 변수 $3이(가) 정의되지 않았습니다. 당신은 그것이 awk 변수 $3이라고 가정하고 있는 것 같습니다. 그리고 쉘 테스트 작업에서 잘못된 구문(인용문)을 사용하고 있습니다.

모든 작업을 셸에서 수행하거나 awk에서 수행합니다.

엉뚱하게...

echo "Memory Space Details"
free -t -m | awk '
    /Total/ {
        print "Total Memory space : "$2 " MB"
        print "Used Memory Space : "$3" MB"
        print "Free Memory : "$4" MB"
        if ($3 > 10000)
            system ("email -s ...")
    }'

쉘(예: bash)에서...

echo "Memory Space Details"
set $( free -t -m | grep "Total")
printf "Total Memory space : %s MB\n" "$2"
printf "Used Memory Space : %s MB\n" "$3"
printf "Free Memory : %s MB\n" "$4"
(( $3 > 10000 ))  &&  email -s "..."

관련 정보