Strona 1 z 1
pierwsze problemy podczas programowania
: 10 sty 2012, 19:15
autor: has
Pierwszy raz obcuje z linuxem i zaczynam pisac proste programy problem powstaje taki ze po napisaniu programu o kodzie
clear
echo " czy jest ranek "
read poradnia
if [ $ poradnia = "tak" ]
then
echo "dzien dobry"
else
echo " idz spac"
fi
exit 0
nadaje tryb wykonywalności dla tego pliku, wpisuje w terminalu nazwe pliku nie dziala i pojawia sie komunikat
Nie odnaleziono polecenia 'plik', czy miałaś/miałeś na myśli:
Polecenie 'plink' z pakietu 'putty-tools' (universe)
Polecenie 'plio' z pakietu 'gnustep-base-runtime' (universe)
plik: nie znaleziono polecenia
a jak normalnie klikam na plik znajdujacy sie na pulpicie to jest brak jakiejkolwiek reakcji.
Re: problem
: 10 sty 2012, 19:20
autor: kabanek
ja za to dostawałem błąd:
czy jest ranek
tak
./poradnia.sh: line 4: [: za dużo argumentów
idz spac
zmieniłem na
Kod: Zaznacz cały
clear
echo " czy jest ranek "
read poradnia
if [ $poradnia = "tak" ]
then
echo "dzien dobry"
else
echo " idz spac"
fi
exit 0
wpisuje w konsolę ./poranek.sh
i jest bez błędu
a co chcesz żeby robił, gdy wpiszesz tak lub nie?
zauważ, że jeszcze na samym końcu dałeś
co chyba jednoznacznie "mówi" bash'owi co ma zrobić, gdy warunek się skończy
Re: problem
: 10 sty 2012, 19:26
autor: has
jak wpisuje tak to powinno wyswietlic sie dzien dobry, jesli inne wyrazenie to idz spac
-- 10 sty 2012, o 19:38 --
juz pomalu ogarniam ale problem pojawia sie innej natury mianowicie
clear
echo " czy jest ranek "
read poradnia
if [ $ poradnia = "tak" ]
then
echo "dzien dobry"
elif [ $ poradnia = "nie"]
else
echo " idz spac "
fi
exit 0
po uruchomieniu podaje mi taki komunikat
darek@Sempron:~/Pulpit$ ./plik
czy jest ranek
tak
./plik: line 8: błąd składni przy nieoczekiwanym znaczniku `else'
./plik: line 8: `else '
Re: problem
: 10 sty 2012, 20:41
autor: kampo
Napisałem działający skrypt, zobacz sobie, co masz źle:
Kod: Zaznacz cały
#!/bin/bash
echo "Czy jest poranek?"
read zmienna
if [ $zmienna == "tak" ]; then
echo "Witam"
else
echo "Do spania"
fi
Zauważ, że przy każdym tescie po '[' jak i przed ']' MUSI być spacja.
Edit:
To jest chyba Twój błąd.
Edit 2:
Jeszcze jedno. Po wyrażeniu 'elif' także musi byc 'then'. I nie możesz pisać zmiennych ze spacją po dolarze.
Pozdrawiam.
Re: problem
: 10 sty 2012, 21:19
autor: has
wiem ale kod mam poprawny
Kod: Zaznacz cały
clear
echo " czy jest ranek "
read poradnia
if [ $poradnia = "tak" ]
then
echo "dzien dobry"
elif [ $poradnia = "nie" ]
else
echo " idz spac "
fi
exit 0
z tym ze pojawia mi sie taki komunikat a do konca nie wiem co on oznacza
Kod: Zaznacz cały
./plik: line 8: błąd składni przy nieoczekiwanym znaczniku `else'
./plik: line 8: `else'
Re: problem
: 10 sty 2012, 21:57
autor: k2cl
Zmień tytuł tematu tak, aby w sposób możliwie precyzyjny przedstawiał sedno sprawy, w której piszesz. Miej na uwadze również zgodność z
REGULAMINEMTytuł tematu zmienisz edytując pierwszy post W razie wątpliwości/zastrzeżeń odnośnie powyższej informacji skontaktuj się z moderatorem, który ją wstawił.
Re: pierwsze problemy podczas programowania
: 11 sty 2012, 17:27
autor: kampo
1. Po 'elif' nie masz 'then',
2. Po 'elif' nie ma żadnego kodu, a musi być,
3. Przy porównaniach używaj 2 znaków, tzn. zamiast '=' wpisz '=='. W Bashu niby działa, ale w innych językach już nie będzie tak ładnie.
Tak powinno to wyglądać:
Kod: Zaznacz cały
echo " czy jest ranek "
read poradnia
if [ $poradnia == "tak" ]
then
echo "dzien dobry"
elif [ $poradnia == "nie" ]
then
echo "idz spac"
else
echo "nie rozumiem"
fi
exit 0
Re: pierwsze problemy podczas programowania
: 11 sty 2012, 19:10
autor: k2cl
Podejście kolejne:
Zmień tytuł tematu na zgodny z
REGULAMINEMZwróć uwagę głównie na słowa, których używasz
Tytuł tematu zmienisz edytując pierwszy post W razie wątpliwości/zastrzeżeń odnośnie powyższej informacji skontaktuj się z moderatorem, który ją wstawił.