Sprawdzenie skrypciku.

Ogólne pytania dotyczące systemu
mefjiu
Posty: 21
Rejestracja: 22 czerwca 2007, 19:38

Sprawdzenie skrypciku.

Post 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
Awatar użytkownika
ruun
Member
Posty: 1366
Rejestracja: 29 marca 2007, 21:07
Lokalizacja: Kruszwica

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