Страница 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