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