views:

40

answers:

2

I need to check if I Filesystem exists, and if it does exist there is 300 MB of space in it.

What I have so far:

if [ "$(df -m /opt/IBM | grep -vE '^Filesystem' | awk '{print ($3)}')" < "300" ]
then
echo "not enough space in the target filesystem"
exit 1
fi

This throws an error. I don't really know what I'm doing in shell.

My highest priority is AIX but I'm trying to get it to work for HP and Sun too.

Please help.

-Alex

A: 

How about posting the error? Anyway, try the following syntax, ie. double brackets and no double quotes:

if [[ $(...) < 300 ]]; then
    ...
fi

From man bash:

[[ expression ]]

Return a status of 0 or 1 depending on the evaluation of the conditional expression expression.

jholster
The OP is probably using `sh` which doesn't have `[[`. Although `ksh` does have it if that's what's being used.
Dennis Williamson
+1  A: 

Here is the code I got working.

if [ "$(df -m /opt/IBM/ITM | awk 'NR==2{print ($3)}')" -lt "300" ]
then
    echo "not enough space in the target filesystem"
    exit 1
fi
Buzkie