Linux Skill - Освой Linux c нуля до DevOps
10.7K subscribers
59 photos
76 videos
436 links
Освой Linux c нуля до DevOps
Подробный гайд по Linux и море других уроков для системных администраторов

📩 По всем вопросам: @chorapov

РКН https://vk.cc/cMUwm4
Download Telegram
🤔 Как запросить ввод Yes/No/Cancel в shell скрипте?

Хочешь сделать свои скрипты более интерактивными? Узнай, как легко запросить ввод от пользователя в Linux с помощью команд read и select.

Основная информация:

1. Использование команды read:

Команда read позволяет запрашивать ввод от пользователя. Вот пример, как это сделать:

   while true; do
read -p "Do you wish to install this program? " yn
case $yn in
[Yy]* ) make install; break;;
[Nn]* ) exit;;
* ) echo "Please answer yes or no.";;
esac
done


Этот скрипт будет повторять запрос, пока пользователь не введет "yes" или "no".

2. Использование команды select:

select упрощает выбор, автоматически отображая доступные варианты:

   echo "Do you wish to install this program?"
select yn in "Yes" "No"; do
case $yn in
Yes ) make install; break;;
No ) exit;;
esac
done


Здесь пользователь выбирает номер, соответствующий его выбору.

3. Локализация ввода:

Для поддержки разных языков можно использовать locale:

   set -- $(locale LC_MESSAGES)
yesexpr="$1"; noexpr="$2"; yesword="$3"; noword="$4"

while true; do
read -p "Install (${yesword} / ${noword})? " yn
if [[ "$yn" =~ $yesexpr ]]; then make install; exit; fi
if [[ "$yn" =~ $noexpr ]]; then exit; fi
echo "Answer ${yesword} / ${noword}."
done


Используя команды read и select, ты можешь сделать свои скрипты более интерактивными и удобными для пользователей. Попробуй сам и убедись в их эффективности!

🌳 Ветка: https://stackoverflow.com/questions/226703/how-do-i-prompt-for-yes-no-cancel-input-in-a-linux-shell-script

📩 Завтра: Топ команды для DevOps: Что спрашивают на собеседованиях
Включи 🔔 чтобы не пропустить!
____________________

Дополнительный материал:
🧠 - Секреты массового управления пользователями и группами в Linux
🧠 - Не трать время на логи! Вот как найти все медленные запросы за 1 минуту
🧠 - Как ускорить MySQL? Простые советы, чтобы твой сервер летал, как на стероидах

#stackoverflow @LinuxSkill #Linux #ShellScripting #UserInput #SysAdmin #DevOps
👍15