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

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

Сообщение Шпак Дмитрий » 24 май 2015, 20:08

Oleg65 писал(а):

Шпак Дмитрий писал(а):

Sunderland93 писал(а):

К сожалению такие уроки только на инглише.
Т.е. мы читаем, понимаем, а выложить на родном вера не позволяет? перевели доступно. А еще лучше к источникам: Шилдт Г., Гриффитсы Д. и Д.. :?


В топике показана комбинация операторов select и case, именно удобное их использование, а не сами операторы. Я не умею писать, не писатель я.
Шпак Дмитрий
Местный говорун
Местный говорун
 
Автор темы
Сообщений: 589
Стаж: 3 года 9 месяцев 1 день
Откуда: Russian_federation, какой то
Благодарил (а): 20 раз.
Поблагодарили: 145 раз.

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

Спонсор

Спонсор
 

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

Сообщение Oleg65 » 24 май 2015, 21:14

Дмитрий, ну, прикиньте, Вы поняли, я понял, ну не все же буржуйский понимают... Вы хотите выделится продвинотостью (не в укор)?, авторы, приведенные мной - первоисточники, ссылка - прямые примеры в Bash... Ну...
Аватар пользователя
Oleg65
Местный говорун
Местный говорун
 
Сообщений: 863
Стаж: 3 года 9 месяцев 2 дня
Откуда: г.Коломна Моск.обл.
Благодарил (а): 72 раз.
Поблагодарили: 209 раз.

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

Сообщение Шпак Дмитрий » 24 май 2015, 21:32

Oleg65 писал(а):

Дмитрий, ну, прикиньте, Вы поняли, я понял, ну не все же буржуйский понимают... Вы хотите выделится продвинотостью (не в укор)?, авторы, приведенные мной - первоисточники, ссылка - прямые примеры в Bash... Ну...

на фиг мне какой то продвинутостью? И то что ты привел не совсем то, тут показан частный, удобный приём сочетаний операторов, не больше. Чуешь разницу то? Причём это виедо урок, а не текст, где даже без языка всё понятно, и направлен для людей, кто имеет уже понятие о программировании. Простой удобный хак, не больше.
Шпак Дмитрий
Местный говорун
Местный говорун
 
Автор темы
Сообщений: 589
Стаж: 3 года 9 месяцев 1 день
Откуда: Russian_federation, какой то
Благодарил (а): 20 раз.
Поблагодарили: 145 раз.

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

Сообщение Oleg65 » 24 май 2015, 21:54

Ну тогда надо проще: case - переключатель, если не случилось одно, то следующее, завершение - esac ( зависимость от результата проверки условий). Select - это выбор предлагаемый prompt (ну, кому не ясно - в строке, гуглите promrt PS3 (#? ) И вся разница... Что напрягать-то? В Любом ЯП - Операторы выбора...
Аватар пользователя
Oleg65
Местный говорун
Местный говорун
 
Сообщений: 863
Стаж: 3 года 9 месяцев 2 дня
Откуда: г.Коломна Моск.обл.
Благодарил (а): 72 раз.
Поблагодарили: 209 раз.

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

Сообщение nezabudka » 25 май 2015, 00:31

Шпак Дмитрий. Если чесно, то очень познавательно. Раньше я бы начала
писать что то подобное и ни когда бы не догадалась ввести селект.
Код: выделить все
#!/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
Аватар пользователя
nezabudka
Местный говорун
Местный говорун
 
Сообщений: 613
Фото: 180
Стаж: 3 года 6 месяцев 2 дня
Откуда: Ростов на Дону
Благодарил (а): 286 раз.
Поблагодарили: 145 раз.

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

Сообщение Шпак Дмитрий » 25 май 2015, 01:31

Незабудка, я привёл так называемый хак, просто приём в программировании, я не собирался учить людей, как работает case и select.
Шпак Дмитрий
Местный говорун
Местный говорун
 
Автор темы
Сообщений: 589
Стаж: 3 года 9 месяцев 1 день
Откуда: Russian_federation, какой то
Благодарил (а): 20 раз.
Поблагодарили: 145 раз.

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

Сообщение nezabudka » 25 май 2015, 01:37

Шпак Дмитрий писал(а):

Незабудка, я привёл так называемый хак, просто приём в программировании, я не собирался учить людей, как работает case и select.

Я это понимаю и поэтому говорю Спасибо, было очнень полезно и очень интересно в этом разобраться.
"I invented the term Object-Oriented and I can tell you I did not have C++ in mind." - Alan Kay
Аватар пользователя
nezabudka
Местный говорун
Местный говорун
 
Сообщений: 613
Фото: 180
Стаж: 3 года 6 месяцев 2 дня
Откуда: Ростов на Дону
Благодарил (а): 286 раз.
Поблагодарили: 145 раз.

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

Сообщение nezabudka » 26 май 2015, 22:03

Код: выделить все
#!/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
Аватар пользователя
nezabudka
Местный говорун
Местный говорун
 
Сообщений: 613
Фото: 180
Стаж: 3 года 6 месяцев 2 дня
Откуда: Ростов на Дону
Благодарил (а): 286 раз.
Поблагодарили: 145 раз.

Пред.

Вернуться в Bash

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2

cron