Strona 1 z 1

Pierwsze programowania

: 03 paź 2009, 12:28
autor: mic93
Nowy temat, w którym początkujący programiści mogą zamieszczać kody, skrypty, do wglądu przez bardziej zaawansowanych programistów :mrgreen:
Dodam tyle że w bashu jestem totalnie zielony, jestem w I klasie LO na mat-infie ^^
Wczoraj naskrobałem taki skrypt (miał byc prosty)

Kod: Zaznacz cały

#!/bin/bash
echo "********************************************************************************
         ..::Kreator wypracowania "o_mnie"::..  v.1.4.5 by Michał 
********************************************************************************" # nazwa i wersja skryptu
echo "Witam w programie"
echo "Przede wszystkim proszę odpowiadać na pytania słowami odmienionymi tak, jak wskazują pytania-jest to ważne dla programu" # informacje nr. 1
echo "Jeśli chcesz skorzystać z programu, wciśnij t następnie enter, jeśli nie-klawisz n, następnie spowoduje wyłączenie się programu." # wybór nr.1
read znak # rozpoznanie tak/nie
if [ $znak = t ] # dla znaku tak:
then
echo "Ile masz lat?:" # wiek
read wiek
{
if [ $wiek -ge 19 ] # warunek wiek >19
then
echo "Jak masz na imię?:" # imię
read imie
echo "Podaj adres e-mail:" # mail
read mail
echo "Gdzie mieszkasz?(adres):" # adres
read adres
echo "Gdzie pracujesz?(studiujesz)[w lub na]:" # szkoła
read praca
echo "W jakim mieście jest Twoje miejsce pracy?(odmiana!):" # miasto
read miasto
fi
}
{
if [ $wiek -le 19 ]
then
echo "Jak masz na imię?:" # imię
read imie
echo "Podaj adres e-mail:" # mail
read mail
echo "Gdzie mieszkasz?(adres):" # adres
read adres
echo "Do jakiej szkoły chodzisz?:" # szkoła
read szkola
echo "W jakim mieście jest Twoja szkoła?(odmiana!):" # miasto
read miasto
fi
}
echo "Jakiego koloru masz włosy?:" # włosy
read wlosy
echo "Ile masz cm wzrostu?:" # wzrost
read wzrost
echo "Twoje główne wady?:" # wady
read wady
echo "Twoje główne zalety?:" # zalety
read zalety
echo "Czym się interesujesz?:" # zainteresowania
read zainteresowania
{
if [ $zainteresowania = niczym ] # warunek wewnętrzny dla zainteresowania=niczym
then
echo "Niemożliwe! Musisz się czymś interesować! Albo po prostu wpisz to co chcesz :)" # niczym się interesuje
echo "Czym się interesujesz?:"
read zainteresowania
fi
}
echo "Podaj swój nr. komórki:" # komórka
read kom
echo "Twój operator komórkowy:" # operator
read operator
fi
if [ $znak = n ] # warunek nie nr1 (wyjście z programu)
then
echo "********************************************************************************
                      Dziękuję za skorzystanie z programu 
********************************************************************************" # notka przy wyjściu z programu
exit
fi # koniec pierwszego warunku
echo "Czy chcesz utworzyć wypracowanie w formie pliku tekstowego? Jeśli tak, wybierz t i wciśnij enter. Jeśli nie naciśnij n a potem enter" # zapis .txt tak/nie
read znak
if [ $znak = t ] # akceptacja zapisu .txt
then
{
if [ $wiek -ge 19 ] # warunek wiek >19
then
echo "Cześć. Mam na imię $imie." >> O_mnie_sr.txt # zdanie o imieniu
echo "Mam $wiek lat." >> O_mnie_sr.txt # zdanie o wieku
echo "Pracuję  $praca, w $miasto." >> O_mnie_sr.txt  # zdanie o pracy i mieście
echo "Interesuję się $zainteresowania." >> O_mnie_sr.txt # zdanie o zainteresowaniach
echo "Mam włosy koloru $wlosy." >> O_mnie_sr.txt # zdanie kolor włosów
echo "Mam $wzrost cm wzrostu." >> O_mnie_sr.txt # zdanie wzrost
echo "Moimi głównymi wadami są:$wady." >> O_mnie_sr.txt # zdanie wady
echo "Moje zalety to:$zalety." >> O_mnie_sr.txt # zdanie zalety
echo "Pozostawiam tutaj parę informacji, na wypadek gdybyś chciał/a się ze mną skontaktować:" >> O_mnie_sr.txt # zdanie kontakt
echo "Komórka $kom ($operator)" >> O_mnie_sr.txt # zdanie nr komórki i operator
echo "Adres e-mail: $mail" >> O_mnie_sr.txt # adres mailowy
echo "Adres zamieszkania: $adres" >> O_mnie_sr.txt # adres zamieszkania
echo "..::Kreator wypracowania "o_mnie"::..  v.1.4.5 by Michał" >> O_mnie_sr.txt # stopka
echo "Twoje dane osobowe zostaly zapisane w pliku O_mnie_sr.txt. Znajduje się on w Katalogu Domowym"
fi
}
{
if [ $wiek -le 19 ]
then
echo "Cześć. Mam na imię $imie." >> O_mnie_jr.txt # zdanie o imieniu
echo "Mam $wiek lat." >> O_mnie_jr.txt # zdanie o wieku
echo "Chodzę do $szkola, w $miasto." >> O_mnie_jr.txt  # zdanie o szkole i mieście
echo "Interesuję się $zainteresowania." >> O_mnie_jr.txt # zdanie o zainteresowaniach
echo "Mam włosy koloru $wlosy." >> O_mnie_jr.txt # zdanie kolor włosów
echo "Mam $wzrost cm wzrostu." >> O_mnie_jr.txt # zdanie wzrost
echo "Moimi głównymi wadami są:$wady." >> O_mnie_jr.txt # zdanie wady
echo "Moje zalety to:$zalety." >> O_mnie_jr.txt # zdanie zalety
echo "Pozostawiam tutaj parę informacji, na wypadek gdybyś chciał/a się ze mną skontaktować:" >> O_mnie_jr.txt # zdanie kontakt
echo "Komórka $kom ($operator)" >> O_mnie_jr.txt # zdanie nr komórki i operator
echo "Adres e-mail: $mail" >> O_mnie_jr.txt # adres mailowy
echo "Adres zamieszkania: $adres" >> O_mnie_jr.txt # adres zamieszkania
echo "..::Kreator wypracowania "o_mnie"::..  v.1.4.5 by Michał" >> O_mnie_jr.txt # stopka
echo "Twoje dane osobowe zostaly zapisane w pliku O_mnie_jr.txt. Znajduje się on w Katalogu Domowym"
fi
} 
echo "********************************************************************************
                    Dziękuję za skorzystanie z programu 
********************************************************************************" # info po wprowadzeniu danych i wybraniu tak zapisu .txt
else
echo            "Twoje dane osobowe nie zostały zapisane" # pożegnanie po zapisaniu pliku
fi
if [ $znak = n ] # dla niezaakceptowania zapisu .txt
then
echo               "Nie został utworzony plik tekstowy"
echo "********************************************************************************
                    Dziękuję za skorzystanie z programu 
********************************************************************************" # pożegnanie dla niezapisania .txt
fi # koniec
Chętnie przyjme uwagi co do poprawy skryptu, ew. jakiegoś poradnika :)

Odp: Pierwsze programowania

: 03 paź 2009, 13:29
autor: beluosus
Pierwsze co się rzuca w oczy: rób wcięcia w kodzie. ;)

Kod: Zaznacz cały

if [ costam ]; then
{
	polecenia;
	dalsze polecenia;
}
fi
Druga uwaga: jeśli na pierwsze pytanie odpowiemy inaczej niż t/n to dzieje się coś co się nie powinno dziać. ;) Ale to chyba mało istotne, bo od użytkownika oczekujemy, że będzie się słuchał. ;)
Może jeszcze w wypadku już istniejącego pliku nadpisz go w taki sposób:

Kod: Zaznacz cały

echo "Cześć. Mam na imię $imie." > O_mnie_sr.txt # zdanie o imieniu
# > zamiast >>
Reszta wygląda ok.

Odp: Pierwsze programowania

: 03 paź 2009, 20:38
autor: luzakwielki
beluosus pisze:Może jeszcze w wypadku już istniejącego pliku nadpisz go w taki sposób:

Kod: Zaznacz cały

echo "Cześć. Mam na imię $imie." > O_mnie_sr.txt # zdanie o imieniu
# > zamiast >>
A skąd wiesz czy chce nadpisać, a nie dopisać na końcu istniejącego pliku?

Odp: Pierwsze programowania

: 03 paź 2009, 21:37
autor: rryk
ponieważ w takim wypadku może wyjść masło maślane :D

Odp: Pierwsze programowania

: 03 paź 2009, 22:19
autor: Szmitas
Program byłby bardziej użyteczny gdyby wypisywał wszystko po angielsku/niemiecku ;)

Odp: Pierwsze programowania

: 03 paź 2009, 23:04
autor: beluosus
luzakwielki pisze:A skąd wiesz czy chce nadpisać, a nie dopisać na końcu istniejącego pliku?
Nie wiem, napisałem wyraźnie, że 'może'!