Страница 2 из 2
Re: использование select и case
Добавлено: 24 май 2015, 20:08
Шпак Дмитрий
Oleg65 писал(а):Шпак Дмитрий писал(а):Sunderland93 писал(а):К сожалению такие уроки только на инглише.
Т.е. мы читаем, понимаем, а выложить на родном вера не позволяет?
перевели доступно. А еще лучше к источникам: Шилдт Г., Гриффитсы Д. и Д..

В топике показана комбинация операторов select и case, именно удобное их использование, а не сами операторы. Я не умею писать, не писатель я.
Re: использование select и case
Добавлено: 24 май 2015, 21:14
Oleg65
Дмитрий, ну, прикиньте, Вы поняли, я понял, ну не все же буржуйский понимают... Вы хотите выделится продвинотостью (не в укор)?, авторы, приведенные мной - первоисточники, ссылка - прямые примеры в Bash... Ну...
Re: использование select и case
Добавлено: 24 май 2015, 21:32
Шпак Дмитрий
Oleg65 писал(а):Дмитрий, ну, прикиньте, Вы поняли, я понял, ну не все же буржуйский понимают... Вы хотите выделится продвинотостью (не в укор)?, авторы, приведенные мной - первоисточники, ссылка - прямые примеры в Bash... Ну...
на фиг мне какой то продвинутостью? И то что ты привел не совсем то, тут показан частный, удобный приём сочетаний операторов, не больше. Чуешь разницу то? Причём это виедо урок, а не текст, где даже без языка всё понятно, и направлен для людей, кто имеет уже понятие о программировании. Простой удобный хак, не больше.
Re: использование select и case
Добавлено: 24 май 2015, 21:54
Oleg65
Ну тогда надо проще: case - переключатель, если не случилось одно, то следующее, завершение - esac ( зависимость от результата проверки условий). Select - это выбор предлагаемый prompt (ну, кому не ясно - в строке, гуглите promrt PS3 (#? ) И вся разница... Что напрягать-то? В Любом ЯП - Операторы выбора...
Re: использование select и case
Добавлено: 25 май 2015, 00:31
nezabudka
Шпак Дмитрий. Если чесно, то очень познавательно. Раньше я бы начала
писать что то подобное и ни когда бы не догадалась ввести селект.
Код: Выделить всё
#!/usr/bin/env bash
while true; do
echo "Введите одну из трех цифр и нажмите enter"
echo "1)стол"
echo "2)стул"
echo "3)попугай"
read d
case $d in
1)
echo "Вы выбрали стол"
;;
2)
echo "Вы выбрали стул"
;;
3)
echo "Вы выбрали попугай"
esac
echo "Давай еще"
done
Оказывается все просто как все гениальное!
Но так же заслуживает внимание вариант в оупеннет замеченный
пользователем Oleg65 , хотя он и имеет несколько
иной функционал
Код: Выделить всё
#!/usr/bin/env bash
PS3='Выберите ваш любимый овощ: ' # строка приглашения к вводу (prompt)
echo
select vegetable in "бобы" "морковь" "картофель" "лук" "брюква"
do
echo
echo "Вы предпочитаете $vegetable."
echo ";-))"
echo
#break # если 'break' убрать, то получится бесконечный цикл.
done
exit 0
Re: использование select и case
Добавлено: 25 май 2015, 01:31
Шпак Дмитрий
Незабудка, я привёл так называемый хак, просто приём в программировании, я не собирался учить людей, как работает case и select.
Re: использование select и case
Добавлено: 25 май 2015, 01:37
nezabudka
Шпак Дмитрий писал(а):Незабудка, я привёл так называемый хак, просто приём в программировании, я не собирался учить людей, как работает case и select.
Я это понимаю и поэтому говорю Спасибо, было очнень полезно и очень интересно в этом разобраться.
Re: использование select и case
Добавлено: 26 май 2015, 22:03
nezabudka
Код: Выделить всё
#!/usr/bin/env bash
#name tost.sh
# set shuttle list
trap 'echo && echo "не уходи"' 2
while true; do
select shuttle in columbia endeavour challenger discovery atlantis enterprise pathfinder
do
case $shuttle in
columbia)
echo "--------------"
echo "Space Shuttle Columbia was the first spaceworthy space shuttle in NASA's orbital fleet."
echo "--------------"
break
;;
endeavour)
echo "--------------"
echo "Space Shuttle Endeavour is one of three currently operational orbiters in the Space Shuttle."
echo "--------------"
break
;;
challenger)
echo "--------------"
echo "Space Shuttle Challenger was NASA's second Space Shuttle orbiter to be put into service."
echo "--------------"
break
;;
discovery)
echo "--------------"
echo "Discovery became the third operational orbiter, and is now the oldest one in service."
echo "--------------"
break
;;
atlantis)
echo "--------------"
echo "Atlantis was the fourth operational shuttle built."
echo "--------------"
break
;;
enterprise)
echo "--------------"
echo "Space Shuttle Enterprise was the first Space Shuttle orbiter."
echo "--------------"
break
;;
pathfinder)
echo "--------------"
echo "Space Shuttle Orbiter Pathfinder is a Space Shuttle simulator made of steel and wood."
echo "--------------"
break
;;
*)
echo "Error: Please try again (select 1..7)!"
break
;;
esac
done
done