带有fi的bash脚本语法错误

时间:2014-09-02 16:27:51

标签: bash unix

当我的磁盘耗尽服务器空间时,我正在尝试让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'

任何人都可以向我解释我做错了什么。 这似乎是严格的。一个空间缺失,没有任何作用。

我也试图将字符%放在字符串中,但它不起作用。我试着用\%/%没有运气。

1 个答案:

答案 0 :(得分:3)

[之后和]之前使用空格([实际上是由bash调用的程序。)

即。使用[时,每次评估都会调用外部程序;您可以使用[[]]进行bash内部评估来避免这种情况。

您还应该考虑引用(使用双引号)if语句中使用的变量。