<Предыдущая | Содержание: | Следующая>
случаев
In колотить, составная команда с множественным выбором называется случаев. Он имеет следующий синтаксис:
случаев слово in
[описания [| описания] ...) команды ;;] ...
ESAC
Если мы посмотрим на меню для чтения В программе из главы 28 мы видим логику, используемую для действий по выбору пользователя:
#! / Bin / Баш
# read-menu: очистка программы системной информации на основе меню
эхо "
Пожалуйста выберите:
1. Отображение системной информации
2. Отображение дискового пространства
3. Отображение использования домашнего пространства
0. Выйти »
read -p "Ввести выделение [0-3]>"
если [[$ REPLY = ~ ^ [0-3] $]]; тогда если [[$ REPLY == 0]]; тогда
#! / Bin / Баш
# read-menu: очистка программы системной информации на основе меню
эхо "
Пожалуйста выберите:
1. Отображение системной информации
2. Отображение дискового пространства
3. Отображение использования домашнего пространства
0. Выйти »
read -p "Ввести выделение [0-3]>"
если [[$ REPLY = ~ ^ [0-3] $]]; тогда если [[$ REPLY == 0]]; тогда
echo «Программа завершена». выход
fi
если [[$ REPLY == 1]]; затем введите время работы "Hostname: $ HOSTNAME"
выход
fi
если [[$ REPLY == 2]]; затем df -h
выход
fi
если [[$ REPLY == 3]]; тогда
если [[$ (id -u) -eq 0]]; тогда
echo "Использование домашнего пространства (все пользователи)" du -sh / home / *
еще
echo "Использование домашнего пространства ($ USER)" du -sh $ HOME
Fi выход
фи еще
echo "Неверная запись." > & 2 выход 1
fi
echo «Программа завершена». выход
fi
если [[$ REPLY == 1]]; затем введите время работы "Hostname: $ HOSTNAME"
выход
fi
если [[$ REPLY == 2]]; затем df -h
выход
fi
если [[$ REPLY == 3]]; тогда
если [[$ (id -u) -eq 0]]; тогда
echo "Использование домашнего пространства (все пользователи)" du -sh / home / *
еще
echo "Использование домашнего пространства ($ USER)" du -sh $ HOME
Fi выход
фи еще
echo "Неверная запись." > & 2 выход 1
fi
. случаев, мы можем заменить эту логику на что-нибудь попроще:
#! / Bin / Баш
# case-menu: очистка программы системной информации на основе меню
эхо "
Пожалуйста выберите:
1. Отображение системной информации
2. Отображение дискового пространства
3. Отображение использования домашнего пространства
0. Выйти »
read -p "Ввести выделение [0-3]>"
case $ REPLY в
0) echo «Программа завершена». выход
;;
#! / Bin / Баш
# case-menu: очистка программы системной информации на основе меню
эхо "
Пожалуйста выберите:
1. Отображение системной информации
2. Отображение дискового пространства
3. Отображение использования домашнего пространства
0. Выйти »
read -p "Ввести выделение [0-3]>"
case $ REPLY в
0) echo «Программа завершена». выход
;;
1) echo "Имя хоста: $ HOSTNAME" время безотказной работы
;;
2) дф-ч
;;
3) если [[$ (id -u) -eq 0]]; тогда
echo "Использование домашнего пространства (все пользователи)" du -sh / home / *
еще
echo "Использование домашнего пространства ($ USER)" du -sh $ HOME
fi
;;
*) echo "Invalid entry"> & 2 exit 1
;;
ESAC
1) echo "Имя хоста: $ HOSTNAME" время безотказной работы
;;
2) дф-ч
;;
3) если [[$ (id -u) -eq 0]]; тогда
echo "Использование домашнего пространства (все пользователи)" du -sh / home / *
еще
echo "Использование домашнего пространства ($ USER)" du -sh $ HOME
fi
;;
*) echo "Invalid entry"> & 2 exit 1
;;
ESAC
Команда случаев команда смотрит на значение слово, в нашем примере значение оТВЕТИТЬ переменной, а затем пытается сопоставить ее с одним из указанных паттеранами. Когда совпадение найдено, команды связанные с указанным шаблоном. После того, как совпадение найдено, дальнейшие попытки сопоставления не предпринимаются.