Команда IT специалистов выполнит подготовку инфраструктуры для вашего бизнеса.
Внедрение самых передовых решений и технологий.
Поддержка и сопровождение ваших сервисов.
Выполнение работ под "ключ", от покупки сервера, до настройки автоматизации процессов.
8(977)608-78-62 adm@nixm.ru

использование select и case

Шпак Дмитрий
Местный говорун
Местный говорун
Сообщения: 579
Зарегистрирован: 19 янв 2015, 15:56
Откуда: Russian_federation, какой то

Re: использование select и case

Сообщение Шпак Дмитрий »

Oleg65 писал(а):
Шпак Дмитрий писал(а):
Sunderland93 писал(а):К сожалению такие уроки только на инглише.
Т.е. мы читаем, понимаем, а выложить на родном вера не позволяет? перевели доступно. А еще лучше к источникам: Шилдт Г., Гриффитсы Д. и Д.. :?
В топике показана комбинация операторов select и case, именно удобное их использование, а не сами операторы. Я не умею писать, не писатель я.
Аватара пользователя
Oleg65
Местный говорун
Местный говорун
Сообщения: 859
Зарегистрирован: 18 янв 2015, 10:56
Откуда: г.Коломна Моск.обл.

Re: использование select и case

Сообщение Oleg65 »

Дмитрий, ну, прикиньте, Вы поняли, я понял, ну не все же буржуйский понимают... Вы хотите выделится продвинотостью (не в укор)?, авторы, приведенные мной - первоисточники, ссылка - прямые примеры в Bash... Ну...
Шпак Дмитрий
Местный говорун
Местный говорун
Сообщения: 579
Зарегистрирован: 19 янв 2015, 15:56
Откуда: Russian_federation, какой то

Re: использование select и case

Сообщение Шпак Дмитрий »

Oleg65 писал(а):Дмитрий, ну, прикиньте, Вы поняли, я понял, ну не все же буржуйский понимают... Вы хотите выделится продвинотостью (не в укор)?, авторы, приведенные мной - первоисточники, ссылка - прямые примеры в Bash... Ну...
на фиг мне какой то продвинутостью? И то что ты привел не совсем то, тут показан частный, удобный приём сочетаний операторов, не больше. Чуешь разницу то? Причём это виедо урок, а не текст, где даже без языка всё понятно, и направлен для людей, кто имеет уже понятие о программировании. Простой удобный хак, не больше.
Аватара пользователя
Oleg65
Местный говорун
Местный говорун
Сообщения: 859
Зарегистрирован: 18 янв 2015, 10:56
Откуда: г.Коломна Моск.обл.

Re: использование select и case

Сообщение Oleg65 »

Ну тогда надо проще: case - переключатель, если не случилось одно, то следующее, завершение - esac ( зависимость от результата проверки условий). Select - это выбор предлагаемый prompt (ну, кому не ясно - в строке, гуглите promrt PS3 (#? ) И вся разница... Что напрягать-то? В Любом ЯП - Операторы выбора...
Аватара пользователя
nezabudka
Местный говорун
Местный говорун
Сообщения: 618
Зарегистрирован: 18 апр 2015, 06:13
Откуда: Ростов на Дону

Re: использование select и case

Сообщение 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
"I invented the term Object-Oriented and I can tell you I did not have C++ in mind." - Alan Kay
Шпак Дмитрий
Местный говорун
Местный говорун
Сообщения: 579
Зарегистрирован: 19 янв 2015, 15:56
Откуда: Russian_federation, какой то

Re: использование select и case

Сообщение Шпак Дмитрий »

Незабудка, я привёл так называемый хак, просто приём в программировании, я не собирался учить людей, как работает case и select.
Аватара пользователя
nezabudka
Местный говорун
Местный говорун
Сообщения: 618
Зарегистрирован: 18 апр 2015, 06:13
Откуда: Ростов на Дону

Re: использование select и case

Сообщение nezabudka »

Шпак Дмитрий писал(а):Незабудка, я привёл так называемый хак, просто приём в программировании, я не собирался учить людей, как работает case и select.
Я это понимаю и поэтому говорю Спасибо, было очнень полезно и очень интересно в этом разобраться.
"I invented the term Object-Oriented and I can tell you I did not have C++ in mind." - Alan Kay
Аватара пользователя
nezabudka
Местный говорун
Местный говорун
Сообщения: 618
Зарегистрирован: 18 апр 2015, 06:13
Откуда: Ростов на Дону

Re: использование select и case

Сообщение 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
"I invented the term Object-Oriented and I can tell you I did not have C++ in mind." - Alan Kay
Ответить

Вернуться в «Bash»