Strona 1 z 1

[+]Skrypt bash

: 12 czerwca 2016, 10:08
autor: moloch
Czesc,

Mam pewien problem i nie wiem jak sobie z nim poradzić. Jestem dość świeży jeżeli chodzi o programowanie, Linuxa czy pisanie skryptów w bash.
Problem polega na tym, że:

Moj skrypt znajduje się w np w /root/skrypt

dst_path="/nauka/dir1/dir2"
tmp_path="tmp"
nazwa_pliku=test
#Zmienna tmp_path to katalog tworzony automatycznie po odpaleniu skryptu w katalogu gdzie skrypt sie znajduje.

if cp $tmp_path/$nazwa_pliku $dst_path && echo Kopiuje plik wynikowy do $dst_path.
then echo "Plik zostal skopiowany"
else echo "Plik nie został skopiowany- sprawdz dlaczego !!!"
fi

Problem w tym że cp nie dochodzi do skutku, ciągle mam komunikat "cp: nie można utworzyć zwykłego pliku `/nauka/dir1/dir2': Nie ma takiego pliku ani katalogu".

Re: Skrypt bash

: 12 czerwca 2016, 11:01
autor: dedito
Komunikat raczej jasno "mówi", że nie ma takich katalogów.
Wypadałoby je najpierw utworzyć lub dopisać do skryptu coś na bazie polecenia mkdir.
Jak poczytasz man cp to znajdziesz też opcję --parents.

Re: Skrypt bash

: 12 czerwca 2016, 11:09
autor: moloch
Katalogi są utworzone. Przepraszam ze o tym wczesniej nie wspomnialem. Operacja wykonywana z roota

Re: Skrypt bash

: 12 czerwca 2016, 11:19
autor: dedito
moloch pisze:Katalogi są utworzone.
Gdzie?

Re: Skrypt bash

: 12 czerwca 2016, 11:29
autor: moloch
bezpośrednio na dysku /nauka - jest równolegle do katalogów /root/, /home/ itp.

Re: Skrypt bash

: 12 czerwca 2016, 11:33
autor: dedito
W takim razie pokaż to w odpowiednim wyniku:

Kod: Zaznacz cały

ls /

Re: Skrypt bash

: 12 czerwca 2016, 11:46
autor: moloch
Chyba problem rozwiązany - jeszcze musze dokladnie potestowac z roznych lokalizacji. Wygląda na to ze problemem był brak / po $dst_patch
było:
if cp $tmp_path/$nazwa_pliku $dst_path

jest
if cp $tmp_path/$nazwa_pliku $dst_path/
i działa. Dzieki za pomoc :)

Re: Skrypt bash

: 12 czerwca 2016, 11:48
autor: dedito
To akurat nie ma znaczenia (przynajmniej u mnie).