当我的磁盘耗尽服务器空间时,我正在尝试让cron向我发送邮件。 我设法得到了一些工作,但它一直给我一些愚蠢的错误。
#!/bin/bash
DISKUSAGE=$(df / | grep / | awk '{ print $5}' | sed 's/%//g')
ALERT=90
EMAILTO="admin@example.com"
EMAILSUBJECT="Server "
EMAILMESSAGE=" Your partition is running out of space. Used $DISKUSAGE"
if [$DISKUSAGE -gt $ALERT]
then
echo $EMAILMESSAGE
fi
我收到以下错误
root@ds5890:~# bash checkspace.sh
checkspace.sh: line 10: syntax error near unexpected token `fi'
checkspace.sh: line 10: `fi'
任何人都可以向我解释我做错了什么。 这似乎是严格的。一个空间缺失,没有任何作用。
我也试图将字符%放在字符串中,但它不起作用。我试着用\%/%没有运气。
答案 0 :(得分:3)
在[
之后和]
之前使用空格([
实际上是由bash调用的程序。)
即。使用[
时,每次评估都会调用外部程序;您可以使用[[
和]]
进行bash内部评估来避免这种情况。
您还应该考虑引用(使用双引号)if语句中使用的变量。