Опция elif
уже была опубликована Кентом , а отличная альтернатива была отправлена beny23 , надеюсь, это может дать некоторую информацию. Причина, по которой вы получаете ошибку unexpected end of file
, заключается в том, что if
не были закрыты должным образом. (Я не уверен, что это то, что Каз пытается сказать в ответе, поэтому я добавляю этот ответ) Bash видит ваш сценарий
if
..
else
.. if
.. else
.. .. if
Таким образом, 2 пропавших без вести fi
.
if [ "$1" == "on" ]; then #if 1
echo "Maintenance going on"
echo "<maintenance/>" > $MFILE
else
if [ "$1" == "off" ]; then #if 2
echo "Maintenance going off"
rm $MFILE
else
if [ "$1" == "status" ]; then #if 3
if [ -f $MFILE ]; then #if 4
echo "Maintenance is ON"
else
echo "Maintenance is OFF"
fi #for if 4
else
echo "ERROR: Unknown command $1"
exit 1
fi #for if 3
fi #for if 2
fi #for if 1
Надеюсь, это поможет!