Strona 1 z 1

Sprawdzenie skrypciku.

: 19 maja 2008, 16:02
autor: mefjiu
Mam napisać taki skrypcik:
Napisz skrypt, który będzie zmieniał nazwę podanego pliku (pierwszy argument) na nową nazwę (podaną w drugim argumencie). Dodatkowo utworzy kopię pliku podanego w pierwszym argumencie pod tą samą nazwą z rozszerzeniem .old. Jeżeli nowa nazwa nie zostanie podana to przyjmij nową nazwę "nowy" i poinformuj użytkownika, że została utworzona kopia pliku pod nazwą nowy.
W skrypcie uwzględnij następującą obsługę błędów:
a)Sprawdź czy podany został pierwszy argument, jeżeli nie to wypisz stosowny komunikat i wyjdź z programu
b)czy istnieje plik źródłowy
c)czy masz prawo pisania do bierzącego katalogu
d)czy podany został drugi argument, jeżeli nie przyjmij domyślną nazwę "nowy".

Kod wygląda tak, a ja proszę o sprawdzenie czy on działa poprawnie.

Kod: Zaznacz cały

#sprawdzamy czy podany jest pierwszy argument
if
[-z"$1"]
then
echo podaj argument
exit
fi

#sprawdzamy czy istnieje plik źródłowy ! przeczenie czyli plik nie istnieje
if
[ ! -f $1 ]
then
echo podany argument "$1" nie jest plikiem
exit
fi

#sprawdzam czy mamy prawo pisania do bieżącego katalogu (katalog bieżący
#oznaczamy .)
if
[ ! -w . ]
then
echo nie masz prawa pisania
#dodaliśmy tutaj prawo zapisu (nie było tego w treści zadania)
chmod +w .
echo dodano prawo zapisu
fi

#czy podany jest drugi argument, jeżeli nie to przyjmujemy domyślną nazwę
#nowy
[ -z "$2" ]
then 
cp $1 $1.old
cp $1 nowy
rm $1
echo nazwa pliku $1 zosta zmieniona na nowy
exit
fi

# gdy drugi argument jest podany
cp $1 $1.old
cp $1 $2
rm $1

: 20 maja 2008, 11:26
autor: ruun
Zamieniłbym linijki

Kod: Zaznacz cały

cp $1 $2 
rm $1
na

Kod: Zaznacz cały

mv $1 $2
i analogicznie

Kod: Zaznacz cały

cp $1 nowy 
rm $1
na

Kod: Zaznacz cały

mv $1 nowy