Вы что, по диагонали читаете?
Если команда выполняется успешно (возвращенный код равен нулю) <string1> раскрывается и замещает весь элемент; во время этого расширения, стандартный вывод / ошибка из команды в переменной $ значение. Если команда не выполняется, <string2>, если присутствует, расширен и использован. Еще раз, во время расширения, стандартный вывод / ошибка из команды в переменной $ значение.
Ваш скрипт всегда будет выполнен успешно, т.е всегда в stdout будет 1, а acl_m1 будет равен true, т.е. первым стрингам
Можете преобразовать скрипт к виду:
Код: Выделить всё
#!/bin/sh
AVAIL=`df -m | grep $1 | awk '{ print $4 }'`
if [ "$AVAIL" -gt 10 ]
then
вапыцуролываорфывлою.
else echo 1
fi
Тогда скрипт вывалится с "command not found" и в stdout будет 0, acl_m1 будет равен false, т.е. "вторым стрингам" .
Не очень красиво, но работать будет
Кстати надо имя команды "вапыцуролываорфывлою" запатентовать после этого :-)