pierwsze problemy podczas programowania

Bash, C, C++, Java, PHP, Ruby, GTK, Qt i wiele innych - wszystko tutaj.
has
Piegowaty Guziec
Piegowaty Guziec
Posty: 3
Rejestracja: 10 sty 2012, 18:50
Płeć: Mężczyzna
Wersja Ubuntu: 11.04
Architektura: x86
Kontakt:

pierwsze problemy podczas programowania

Post 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.
Ostatnio zmieniony 11 sty 2012, 11:54 przez has, łącznie zmieniany 2 razy.
Awatar użytkownika
kabanek
Zakręcona Traszka
Zakręcona Traszka
Posty: 592
Rejestracja: 23 cze 2009, 20:34
Płeć: Mężczyzna
Wersja Ubuntu: 13.10
Środowisko graficzne: Xfce
Architektura: x86_64
Kontakt:

Re: problem

Post 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ś

Kod: Zaznacz cały

exit 0
co chyba jednoznacznie "mówi" bash'owi co ma zrobić, gdy warunek się skończy
has
Piegowaty Guziec
Piegowaty Guziec
Posty: 3
Rejestracja: 10 sty 2012, 18:50
Płeć: Mężczyzna
Wersja Ubuntu: 11.04
Architektura: x86
Kontakt:

Re: problem

Post 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 '
kampo
Sędziwy Jeż
Sędziwy Jeż
Posty: 81
Rejestracja: 01 gru 2009, 21:52
Płeć: Mężczyzna
Wersja Ubuntu: 10.10
Środowisko graficzne: LXDE
Architektura: x86_64
Kontakt:

Re: problem

Post 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:

Kod: Zaznacz cały

elif [ $ poradnia = "nie"]
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.
has
Piegowaty Guziec
Piegowaty Guziec
Posty: 3
Rejestracja: 10 sty 2012, 18:50
Płeć: Mężczyzna
Wersja Ubuntu: 11.04
Architektura: x86
Kontakt:

Re: problem

Post 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'
Awatar użytkownika
k2cl
Przyjaciel
Przyjaciel
Posty: 3632
Rejestracja: 09 gru 2007, 12:48
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: LXDE
Architektura: x86

Re: problem

Post 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 REGULAMINEM
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ł.
kampo
Sędziwy Jeż
Sędziwy Jeż
Posty: 81
Rejestracja: 01 gru 2009, 21:52
Płeć: Mężczyzna
Wersja Ubuntu: 10.10
Środowisko graficzne: LXDE
Architektura: x86_64
Kontakt:

Re: pierwsze problemy podczas programowania

Post 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
Awatar użytkownika
k2cl
Przyjaciel
Przyjaciel
Posty: 3632
Rejestracja: 09 gru 2007, 12:48
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: LXDE
Architektura: x86

Re: pierwsze problemy podczas programowania

Post autor: k2cl »

Podejście kolejne:

Zmień tytuł tematu na zgodny z REGULAMINEM
Zwróć 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ł.
ODPOWIEDZ

Wróć do „Programowanie”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 1 gość