Sprawdzenie skryptu

Bash, C, C++, Java, PHP, Ruby, GTK, Qt i wiele innych - wszystko tutaj.
konradr25
Piegowaty Guziec
Piegowaty Guziec
Posty: 2
Rejestracja: 12 lut 2011, 19:42
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: Inne
Architektura: x86_64

Sprawdzenie skryptu

Post autor: konradr25 »

Witam,
Oto mój pierwszy skrypt w bashu. Bardzo bym prosił o sprawdzenie, bo męczę się już od kilku godzin i nadal nie chce działać.
Skrypt ma pobierać pliki z określonej lokalizacji, a następnie jest kompresowany, tworzony torrent i generowany post do pliku $nazwa.txt.

Kod: Zaznacz cały

#!/bin/bash
echo 'Podaj link do źródła'
read link
echo 'Podaj link www seeda'
read urlmm
plik="baza.txt"
a=0
echo 'liczba map'
read koniec
while [ "$koniec"=="$numer" ]
do 
p=p
numerp=$numer$p
let "numer=$a+1"
nazwa=$(sed -n "$numerp" $plik)
linknazwa=$link$nazwa
echo '$linknazwa'

wget -A bsp "$linknazwa"
bzip2 -z -9 $nazwa
bz2=.bz2
nazwabz2=$nazwa$bz2
$wwwseed=$urlmm$nazwabz2
mktorrent -a http://red.tracker.prq.to:80/announce -n $nazwabz2 -w $wwwseed
txt=.txt
nazwa2=$nazwa$txt
touch 
echo "Nazwa mapy - $nazwa" >> $nazwa2
echo "Autor - yy [/size]" >> $nazwa2
echo "Kompresja bzip2" >> $nazwa2

urlhttp=$urlmm$nazwabz2
echo "$urlhttp" >> $nazwa2
torrent=.torrent
nazwatorrent=$nazwabz2$torrent
echo "Torrent"  >> $nazwa2

urltor=$urlmm$nazwatorrent
echo "$urltor" >> $nazwa2
done


Zawartość folderu baza.txt:

Kod: Zaznacz cały

1.bsp
2.bsp
stutu.bsp
aa.bsp
test.bsp
costam.bsp
Pewnie błąd na błędzie ;) Z góry dziękuję za pomoc.
LukAs
Wytworny Kaczor
Wytworny Kaczor
Posty: 284
Rejestracja: 30 paź 2005, 21:56
Płeć: Mężczyzna
Wersja Ubuntu: 10.04
Środowisko graficzne: GNOME
Architektura: x86_64
Kontakt:

Odp: Sprawdzenie skryptu

Post autor: LukAs »

Bardzo bym prosił o sprawdzenie, bo męczę się już od kilku godzin i nadal nie chce działać
A wiesz co dokładnie nie działa? Jakie błędy dostajesz w terminalu?

Uwagi:
- nie ma wcięć.
- nie ma komentarzy

Krótko- BURDEL w kodzie. Nie wiem czy komuś się będzie chciało studiować ten skrypt.
Więcej o mnie znajdziesz na: http://ospulse.pl
Awatar użytkownika
Dwimenor
Przebojowy Jelonek
Przebojowy Jelonek
Posty: 1260
Rejestracja: 18 mar 2008, 16:14
Płeć: Mężczyzna
Wersja Ubuntu: 13.10
Architektura: x86_64

Odp: Sprawdzenie skryptu

Post autor: Dwimenor »

Uwaga trzecie: nazywaj sensowaniej zmienne, bo "nazwa" czy "numerp" niewiele mówi, a wracać ciągle do początku i sprawdzać co dana zmienna stanowi...

Inne rzeczy:

Kod: Zaznacz cały

p=p
numerp=$numer$p
wystarczy

Kod: Zaznacz cały

numerp=${numer}p
Podobna konstrukcja powtarza się w paru miejscach
gdzieś tak dalej jest samotne "touch". Co dotykasz?

Dodaj sobie flagę x

Kod: Zaznacz cały

#!/bin/bash -x
To skrypt powie ci dokładnie co robi. Przydatne przy debugowaniu
Poniższe zdanie jest fałszywe.
Powyższe zdanie jest prawdziwe.
konradr25
Piegowaty Guziec
Piegowaty Guziec
Posty: 2
Rejestracja: 12 lut 2011, 19:42
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: Inne
Architektura: x86_64

Odp: Sprawdzenie skryptu

Post autor: konradr25 »

Dziękuję za pomoc. Spróbuje jakoś to ogarnąć.
Hmm starałem się pisać tak jak jest wykonywana każda czynność po kolei.
Pozdrawiam
kobylecki
Piegowaty Guziec
Piegowaty Guziec
Posty: 19
Rejestracja: 05 gru 2005, 18:11
Płeć: Mężczyzna
Wersja Ubuntu: 11.10
Środowisko graficzne: Unity
Architektura: x86

Odp: Sprawdzenie skryptu

Post autor: kobylecki »

Taka rada: jak potrzebujesz zrobić porównanie dwóch liczb, to użyj do tego liczb, a nie napisów (while [[ napis == napis ]]). Łatwiej jest skonwertować czytany napis na liczbę i później myśleć już tylko o wartości, takie rozwiązanie jest mniej podatne na błędy.
ODPOWIEDZ

Wróć do „Programowanie”

Kto jest online

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