Linux-Bulgaria.ORG
навигация

 

начало

пощенски списък

архив на групата

семинари ...

документи

как да ...

 

 

Предишно писмо Следващо писмо Предишно по тема Следващо по тема По Дата По тема (thread)

Re: lug-bg: yes/no Скрипт


  • Subject: Re: lug-bg: yes/no Скрипт
  • From: Georgi Genov <ggenov@xxxxxxxxxxx>
  • Date: Thu, 07 Oct 2004 16:04:55 +0300

Aleksander Valchev wrote:

Искам да ви питам дали този скрипт е горе-долу добре написан.
Макар, че се вижда yesno е функция която задава въпрос на който може да се отговори само с y,Y,n,N. При въвеждане на друг символ въпросът се повтаря. Ако може да ми кажете дали е правилно и извикването на функцията, получаването на резултата от изпълнението й и обработката на резултата т.е. последните редове. Извинявам се за въпроса но script-ове не обичам да пиша (предпочитам C/C++ и т.н.), но сега ми се налага, а нещо което не ти е толкова приятно по-трудно се справящ с него.

Благодаря предварително за отговорите.

А ето и част от скрипта.

# Ask question (passed as parameter $1) and
# returns 1 if user enter "y" or "Y" and 0 if user enter "n" or "N"
# Do not allow to enter other characters (repeats question until y,Y,n,N)
yesno()
{
   Message=$1 # Question to ask
   while [ true ]; do
echo -n "$Message "
read answer
if [ "$answer" ]; then
    case "$answer" in
 "y"|"Y") # User enter YES, return 1
     return 1
     ;;
 "n"|"N") # User enter NO, return 0
     return 0
     ;;
 *) # User do not know what he/she is enter, continue repeating
     echo "Please enter [y,Y] or [n,N] "
     ;;
    esac
fi # user enter y, n ot something else
   done # while true
}


yesno "Are you ok? [y/n]"
result="$?"
if [ $result -eq 1 ]; then
echo "OK" fi


#!/bin/sh

result() {
   echo $1
   if [ ! $1 = "Other" ]; then
       exit 0
   fi
}

echo -n "Please enter [y,Y] or [n,N] "
read answer
while [ ! $answer = [yY] ] & [ ! $answer = [nN] ]; do
   case "$answer" in
       [Yy]*)
           result Yes
           break
           ;;
       [Nn]*)
           result No
           break
       ;;
       *)
           result Other
           echo -n "Please enter [y,Y] or [n,N] "
           read answer
           ;;
   esac
done
result Deafult

#резултата който ще се връща може да е всякакъв


============================================================================
A mail-list of Linux Users Group - Bulgaria (bulgarian linuxers).
http://www.linux-bulgaria.org - Hosted by Internet Group Ltd. - Stara Zagora
To unsubscribe: http://www.linux-bulgaria.org/public/mail_list.html
============================================================================



 

наши приятели

 

линукс за българи
http://linux-bg.org

FSA-BG
http://fsa-bg.org

OpenFest
http://openfest.org

FreeBSD BG
http://bg-freebsd.org

KDE-BG
http://kde.fsa-bg.org/

Gnome-BG
http://gnome.cult.bg/

проект OpenFMI
http://openfmi.net

NetField Forum
http://netField.ludost.net/forum/

 

 

Linux-Bulgaria.ORG

Mailing list messages are © Copyright their authors.