Pokaż wyniki 1 do 3 z 3

Temat: Typy danych

Hybrid View

Previous Post Previous Post   Next Post Next Post
  1. #1

    Domyślnie Typy danych

    Mój problem polega na tym, że mam zmienną której przypisuje się znak, bądż liczbę. Czy jest jakiś sposób na odróżnienie typu tej zmiennej w zależności string - całkowita?
    Kod:
    read wybor
    if [ ! -z $wybor ]
    then
    if [ $wybor = q ]
     then
     clear
     exit
     elif [ $wybor = + ]
     ...
     elif [ $wybor = - ]
     ...
     elif [ $wybor = , ]
     ...
      elif [ $wybor = . ]
     ..
     else
     if [ $wybor -le $ilosc -a $wybor -ge $poczatek ]   #Jeśli nie podam liczby, bądź jednego z powyższych znaków tu wywala błąd, że oczekuje wartości liczbowej. Chcę to jakość obejść
     then 
     ...
    fi
    fi
    $ilosc i $poczatek to jakies zmienne liczbowe
    Ostatnio edytowane przez napek : 06-10-2007 - 20:08

  2. #2
    Zarejestrowany
    Jun 2006
    Skąd
    rand(.eu)
    Postów
    8,748

    Domyślnie

    man sed - szukaj regex'ow... ogolnie bedzie to na wiekszosci systemow zestaw POSIX'owy
    ctrl-alt-del.cc - soft reset site for IT admins and other staff :-)

  3. #3
    Zarejestrowany
    Jun 2006
    Skąd
    Polska, zachodniopomorskie
    Postów
    46

    Domyślnie

    Najpierw:

    root CSTJUMP / # if [ ! -z $wybor ]; then echo "NON zero"; fi
    NON zero
    root CSTJUMP / # if [ -n ${wybor} ]; then echo "non-zero"; fi
    non-zero
    root CSTJUMP / # echo "man test"
    man test

    Później:

    case ${wybor} in
    q)
    clear
    exit
    ;;
    \+)
    ...
    ;;
    \-)
    ...
    ;;
    \,)
    ...
    ;;
    \.)
    ...
    ;;
    *)
    choice=$(echo ${wybor} | sed -n -e 's@^[0-9]*$@&@p')
    ;;
    esac

    Ponieważ:

    root CSTJUMP / # wybor=matma
    root CSTJUMP / # choice=$(echo ${wybor} | sed -n -e 's@^[0-9]*$@&@p')
    root CSTJUMP / # echo ${choice}

    root CSTJUMP / # [ -z "${choice}" ] && echo "zero lenght string"
    zero lenght string
    root CSTJUMP / # [ -n "${choice}" ] && echo "zero lenght string"
    root CSTJUMP / # wybor=999
    root CSTJUMP / # choice=$(echo ${wybor} | sed -n -e 's@^[0-9]*$@&@p')
    root CSTJUMP / # [ -z "${choice}" ] && echo "zero lenght string"
    root CSTJUMP / # [ -n "${choice}" ] && echo "zero lenght string"
    zero lenght string
    root CSTJUMP / # echo "a wlasciwie to non zero, przeczytaj test"
    a wlasciwie to non zero, przeczytaj test
    root CSTJUMP / #

    Nie jestem dobry w regexach.

    Pozdrawiam

Podobne wątki

  1. Ukrywanie danych w plikach .txt
    By Spec_od_dysków in forum Steganografia
    Odpowiedzi: 14
    Autor: 01-08-2011, 10:26
  2. Odzyskiwanie danych z przed formatowania.
    By zorlan in forum Newbie - dla początkujących!
    Odpowiedzi: 5
    Autor: 05-22-2007, 20:21
  3. OpenSSL szyfrowanie danych
    By Ofca in forum Newbie - dla początkujących!
    Odpowiedzi: 0
    Autor: 05-08-2007, 23:58
  4. Prawidlowe niszczenie danych
    By TQM in forum Security
    Odpowiedzi: 11
    Autor: 04-24-2007, 18:49
  5. Odzyskiwanie nadpisanych danych
    By Dominik in forum Linux
    Odpowiedzi: 3
    Autor: 11-28-2006, 10:17

Zasady Postowania

  • Nie możesz zakładać nowych tematów
  • Nie możesz pisać wiadomości
  • Nie możesz dodawać załączników
  • Nie możesz edytować swoich postów
  •  
Subskrybuj