Odpowiedz na ten temat
Pokaż wyniki od 1 do 7 z 7
  1. Avatar Haseo
    Dołączył
    Sep 2008
    Skąd
    inąd
    Postów
    245

    Cytuj | #1

    Potrzebuję pomocy przy definiowaniu zmiennej. Mam następujący skrypt:
    Kod:
    #!/bin/zsh
    echo "Podaj liczbe znakow ktore ma zawierac haslo"
    read n
    echo -e "Twoje haslo to:"
    head -c $n /dev/random | mmencode | head -c $n
    Wszystko działa tak jak powinno, ale skrypt ma jedną wadę, otóż chciałem zrobić tak, aby przy podaniu zmiennej innej niż*liczba skrypt miał kończyć swoje zadanie. Domyślam się że można to zrobić za pomocą "if", ale tu już nie wiem jak zdefiniować że zmienna = wyrażenie arytmetyczne.
    Cel skryptu? Czasami potrzebuję utworzyć jakieś hasło i jedyne co znalazłem to płatne programy z gui, a po co płacić skoro możemy wykorzystać moc Unix-a.
    Komputer:  MacBook 13,3" 2,4 C2D 4 GB RAM


  2. Avatar pkos
    Dołączył
    Jul 2009
    Postów
    239

    Cytuj | #2

    Jak już chcesz wykorzystać moc Unix'a to zainstaluj pwgen - generuje mocne i optymalizowane do "łatwego" zapamiętania dla człowieka co niekoniecznie /dev/random zapewni.

  3. Avatar Haseo
    Dołączył
    Sep 2008
    Skąd
    inąd
    Postów
    245

    Cytuj | #3

    Zainstalowałem ten pwgen i działa tak jak powinien. Teraz się zastanawiam po co ludzie płacą te kilka $ za program w GUI skoro w terminalu jest to dostępne za darmo.
    Komputer:  MacBook 13,3" 2,4 C2D 4 GB RAM

  4. Avatar Darrarski
    Dołączył
    Jan 2008
    Skąd
    Warszawa / Piastów
    Postów
    467

    Cytuj | #4

    Jak chcą - niech kupują, nie próbuj tego czasem zmieniać
    Jeśli chodzi o Twoje pytanie to: Kurs Bash'a: instrukcja if
    Pobieżnie wyjaśnione jak używać, więcej masz w manualu bash (man bash).
    Komputer: MacBook black MB404 C2D2.4GHz/4GB/250GB OSX 10.7
    Telefon: iPhone 3GS 4.2.1 JB

  5. Avatar ftpd Ten Zły i Niedobry

    Dołączył
    Nov 2007
    Skąd
    Poznań
    Postów
    11,301
    Wpisy
    2

    Cytuj | #5

    Bash nie oferuje typów zmiennych, czyli nie ma możliwości bezpośredniego sprawdzenia, czy podana zmienna jest liczbą.

    Ale można to obejść:

    Kod:
    tuonela ~ % cat skrypt.sh 
    #!/bin/sh
    
    echo "podaj liczbe: "
    read x
    
    if [ ! `echo $x | grep '^[0-9]*$'` ]; then
      echo "nie liczba, won"
      exit 1
    else
      echo "liczba"
      exit 0
    fi
    tuonela ~ % sh skrypt.sh 
    podaj liczbe: 
    31337
    liczba
    tuonela ~ % sh skrypt.sh
    podaj liczbe: 
    dupa
    nie liczba, won
    tuonela ~ %
    Ostatnio edytowane przez ftpd ; 13.07.2009 o 20:31
    Komputer: MacBook Pro
    Telefon: Galaxy Nexus
    WWW: http://insomniac.pl/f/
    ---
    I'm a Grammar Natzee. My Grammer is Gooder.
    NIE pomagam przez PW. Mogę co najwyżej pogawędzić.

  6. Avatar Haseo
    Dołączył
    Sep 2008
    Skąd
    inąd
    Postów
    245

    Cytuj | #6

    Nie pomyślałem o wykorzystaniu grepa, chciałem na siłę wymusić to powłoką i dla tego się zatrzymałem; zmieniłem to co trzeba w skrypcie i heada zastąpiłem cut'em (bo lepiej wygląda na końcu). Oto cały skrypt może komuś się przyda.
    Kod:
    #!/bin/zsh
    echo "Podaj liczbe znakow ktore ma zawierac haslo"
    read n
    if [ ! `echo $n | grep '^[0-9]*$'` ]; then
    echo " nie podales liczby koncze"
    exit 1
    else
    echo -e "Twoje haslo to:"
    head -c $n /dev/random | mmencode | cut -c 1-$n
    fi
    Komputer:  MacBook 13,3" 2,4 C2D 4 GB RAM

  7. Avatar ftpd Ten Zły i Niedobry

    Dołączył
    Nov 2007
    Skąd
    Poznań
    Postów
    11,301
    Wpisy
    2

    Cytuj | #7

    Cytat Napisał Haseo Zobacz post
    Nie pomyślałem o wykorzystaniu grepa, chciałem na siłę wymusić to powłoką
    No to niestety, powłoka za mało umie
    Komputer: MacBook Pro
    Telefon: Galaxy Nexus
    WWW: http://insomniac.pl/f/
    ---
    I'm a Grammar Natzee. My Grammer is Gooder.
    NIE pomagam przez PW. Mogę co najwyżej pogawędzić.

Odpowiedz na ten temat