Strona 1 z 1

Skrypt do automatycznego find/remowe folderów *Jestem nowym userem

: 15 lip 2011, 15:45
autor: marcin_nicram
Witam wszystkich, jestem nowym userem więc jeśli piszę w złym miejscu (bo np. powinienem pisać w przedszkolu ) to proszę o wyrozumiałość oraz informację na ten temat.
Do rzeczy:
Jestem szczęśliwym użytkownikiem Ubuntu 10.4 64-bit. Potrzebuję skryptu który będzie uruchamiany z parametrem/argumentem (owym argumentem będzie ścieżka np. /home/stasio/) w związku z czym postanowiłem go napisać :-).

Wymagania:

Wywołanie skryptu np. ./skrypt /home/stasio/ XXX czyli ./[nazwa_skryptu] [ścieżka] [nazwa_folderu]
1) Wyszukanie folderów o nazwie np. XXX
2) Wypisanie znalezionych folderów XXX na ekranie (zwykłe wylistowanie po find)
2a)/znalezione chciałbym aby były wyświetlone na zielono/
3) Usunięcie znalezionych folderów XXX oraz wypisaniu operacji na ekranie (rm -rf)
3a)/usunięte chciałbym aby było wyświetlone na czerwono/

Dopiero uczę się pisać skrypty więc proszę o wyrozumiałość:
aktualnie mam taki kod:

Kod: Zaznacz cały

#!/bin/bash

echo "Skrypt testowy!"
echo "---------------"

cd /
cd $1

WHERE=`pwd`
echo "Searching in: $WHERE"

#Wypisywanie znalezionych folderow
FIND_FOLDERS_NAMES=`find $1 -name 'XXX' -type d`
echo "$FIND_FOLDERS_NAME"
Wnioski:
Gdy uruchomię skrypt zawiesza się on na szukaniu folderów w taki sposób:

root@stasio-desktop:~# ./skrypt
Skrypt testowy!
---------------
Searching in: /home/amdc519
<- mija troche czasu około 2 min.
root@stasio-desktop:~#


Dodam jeszcze, że w tym miejscu jest bardzo dużo różnych folderów ale XXX są na 100%. Będę wdzięczny za pomoc.

Re: Skrypt do automatycznego find/remowe folderów *Jestem nowym userem

: 30 lip 2011, 00:07
autor: macer
Hehe, literówka :)
Poprawione i działa :)

Kod: Zaznacz cały

#!/bin/bash

echo "Skrypt testowy!"
echo "---------------"

cd /
cd $1

WHERE=`pwd`
echo "Searching in: $WHERE"

#Wypisywanie znalezionych folderow
FIND_FOLDERS_NAMES=`find $1 -name 'XXX' -type d`
echo "$FIND_FOLDERS_NAMES"
Te najprostsze błędy są zawsze najtrudniejsze :P

Zrobiłem w pełni funkcjonalną wersję, znajdziesz ją tu ;)
A tu screenik: Obrazek

Re: Skrypt do automatycznego find/remowe folderów *Jestem nowym userem

: 17 sie 2011, 11:33
autor: marcin_nicram
Witam,
wow serdeczne dzięki Twój skrypt jest (jak na moje możliwości) wypasiony :D. Postaram się go dziś trochę przerobić i wkleję efekty.

Pozdrawiam :D
Marcin.

-- 18 sie 2011, o 11:10 --

Witam,
mam jedno pytanie odnośnie ogólnie skryptów: W jaki sposób mogę zrobić coś takiego aby nazwa skryptu była rozpoznawana w całym systemie tzn. chodzi mi o taka sytuację, że: Mój skrypt nazywa się tak jak wyżej "naszskrypt" wpisuje "naszs" wciskam TAB i nazwa jest dopełniana :-) ?

Pozdrawiam.

-- 18 sie 2011, o 13:10 --

Kolejny problem :-)

Mianowicie... poprawiłem literówkę ale mój skrypt nadal nie działa poprawnie. Dla przetestowania obok swojego wstawiłem skrypt autorstwa macera i oto efekt działania najpierw mojego a później jego skryptu w tym samym miejscu:
------------------------------------------------------------------------------------------------
root@amdc519-desktop:~# ./naszskrypt /home/amdc519/P4/GINGER/ AAA
Skrypt testowy!
---------------
Searching in: /home/amdc519/P4/GINGER

root@amdc519-desktop:~# ./skrypt /home/amdc519/P4/GINGER/ AAA
Skrypt testowy!
---------------
Szukam w : /home/amdc519/P4/GINGER/
/home/amdc519/P4/GINGER/AAA
Łącznie znalezionych folderkóf: 1
Czy usunąć te foldery?

Re: Skrypt do automatycznego find/remowe folderów *Jestem nowym userem

: 20 sie 2011, 23:22
autor: macer

Kod: Zaznacz cały

    #!/bin/bash

    echo "Skrypt testowy!"
    echo "---------------"

    cd /
    cd $1

    WHERE=`pwd`
    echo "Searching in: $WHERE"

    #Wypisywanie znalezionych folderow
    FIND_FOLDERS_NAMES=`find $1 -name $2 -type d`
    echo "$FIND_FOLDERS_NAMES"
Sory, nie wiem jak mogłem przeoczyć taki błąd.
Zostawiłem 'XXX' w kodzie zamiast dać $2 - czyli drugi podany argument.

-- 20 sie 2011 23:01 --
Witam,
mam jedno pytanie odnośnie ogólnie skryptów: W jaki sposób mogę zrobić coś takiego aby nazwa skryptu była rozpoznawana w całym systemie tzn. chodzi mi o taka sytuację, że: Mój skrypt nazywa się tak jak wyżej "naszskrypt" wpisuje "naszs" wciskam TAB i nazwa jest dopełniana :-) ?
1.Możesz skopiować plik do /usr/bin ;)
albo 2. Możesz dodać folder w którym się znajduje skrypt do PATH czyli jeśli dobrze pamiętam to polecenie wygląda jakoś tak: "export PATH=$PATH:/home/folderik/bleble"

Ale lepiej IMO skopiować do /usr/bin - szybciej i wygodniej ;)

Re: Skrypt do automatycznego find/remowe folderów *Jestem nowym userem

: 22 sie 2011, 21:35
autor: marcin_nicram
:-) super. Dzięki za pomoc właśnie przerabiam skrypt i wkleję swój efekt. Co do $2 to "nie myli się ten co nic nie robi" Pozdrawiam.

Re: Skrypt do automatycznego find/remowe folderów *Jestem nowym userem

: 23 sie 2011, 10:44
autor: Cogito18
Najlepiej założyć sobie w katalogu domowym folder o nazwie bin. Taka ścieżka ($HOME/bin) jest już dopisana do zmiennej PATH.

Re: Skrypt do automatycznego find/remowe folderów *Jestem nowym userem

: 23 sie 2011, 17:47
autor: thalcave
marcin_nicram pamiętaj proszę o dwóch regułach:
* używaj tagów code. Zdecydowanie ułatwia to czytanie co konsola wypluła
* nie umieszczaj 2, 3 pytań, które de facto połączone są ze sobą jedynie ideą.