Strona 1 z 1

Sprawdzenie skryptu

: 12 lut 2011, 19:50
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.

Odp: Sprawdzenie skryptu

: 12 lut 2011, 19:56
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.

Odp: Sprawdzenie skryptu

: 12 lut 2011, 20:26
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

Odp: Sprawdzenie skryptu

: 16 lut 2011, 21:19
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

Odp: Sprawdzenie skryptu

: 17 lut 2011, 21:02
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.