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