Bash - co zrobilem zle?

Potrzebujesz pomocy z C, C++, perl, python, itp.
Awatar użytkownika
lays
Beginner
Posty: 238
Rejestracja: 10 kwietnia 2007, 11:54
Lokalizacja: Opole

Bash - co zrobilem zle?

Post autor: lays »

Witam,

Moglby mi powiedziec dlaczego w moim skrypcie wywala mi:

Kod: Zaznacz cały

./antianiso: line 562: syntax error near unexpected token `done'
./antianiso: line 562: `done'
?

Wiem ze chodzi o sposob zakonczenia pliku, ale

Kod: Zaznacz cały

esac
done
wydaje mi sie dobre w tej sytuacji...
Nie mam juz zadnego pomyslu co z tym fantem zrobic i co mu tam nie pasuje... LINK DO SKRYPTU

Bardzo prosze o pomoc!!
Gość

Post autor: Gość »

Po pierwsze :
- nie ma tam żadnej pętli for/while/until itp. , więc nie wiem skąd tam to done
- wniosek: wywalić/zahaszować

Po drugie:
- w case/esac brak Ci wielu znaków )


Pozdrawiam
Awatar użytkownika
lays
Beginner
Posty: 238
Rejestracja: 10 kwietnia 2007, 11:54
Lokalizacja: Opole

Post autor: lays »

Z tymi znakami ) to o co konkretnie chodzi? W bashu dopiero raczkuje i nie mam pojecia o zlozonych konstrukcjach...
Gość

Post autor: Gość »

Przykład szkieletu :

Kod: Zaznacz cały

case "$1" in
 a)   ;;
 b)   ;;
 c)   ;;
 *)   ;;
esac
Porównaj budowę u siebie i załapiesz gdzie Ci brak nawiasów :-)


Pozdrawiam
Awatar użytkownika
lays
Beginner
Posty: 238
Rejestracja: 10 kwietnia 2007, 11:54
Lokalizacja: Opole

Post autor: lays »

Poprawilem, teraz wypluwa mi

Kod: Zaznacz cały

./antianiso: line 565: syntax error: unexpected end of file
.

Link do "poprawionej" wersji

Co znowu zle? :-|
Gość

Post autor: Gość »

Dołącz go jako załącznik do posta - jego formatowanie doprowadza do szału i aż ciężko się połapać gdzie co kończysz, a gdzie zaczynasz.


Pozdrawiam
Awatar użytkownika
lays
Beginner
Posty: 238
Rejestracja: 10 kwietnia 2007, 11:54
Lokalizacja: Opole

Post autor: lays »

Przepraszam za tamto :->

Jest w zalaczniku.
Gość

Post autor: Gość »

OK - teraz sobie zobacz jak to zbudowałeś :

Kod: Zaznacz cały

case "$yourch" in
	1) 			;;
	2)	
		case "$wyboraa" in
			1) 	;;
			2)	;;
			3)	;;
			4)	;;
			5)	;;
			6)	;;
			7)	;;
			8)	;;
			9)	
			*  	;;

	3)	
		case "$wyboranizo" in
			1)	;;
			2)	;;
			3)	;;
			4)	;;
			5)	;;
			6)	;;
			*)	;;

	4)			;; 

esac
Przeczytaj sobie man bash i zbuduj to poprawnie.
Do tego stosuj wcięcia - nie da się czytać tego co piszesz.
Wybacz, ale jak będzie nieczytelne, to nikt nie będzie w stanie połapać się gdzie robisz błędy - tym bardziej Ty sam.
Skoro sam twierdzisz, że raczkujesz w Bashu, to najpierw zapoznaj się solidnie przynajmniej z podstawami.
Błędy które popełniłeś nie powinny mieć w ogóle miejsca w takiej ilości na raz.


Pozdrawiam
Awatar użytkownika
lays
Beginner
Posty: 238
Rejestracja: 10 kwietnia 2007, 11:54
Lokalizacja: Opole

Post autor: lays »

OK, w koncu jako tako dziala. Wielkie Ci dzieki. :mrgreen:
ODPOWIEDZ