Wylistowanie na ekranie zawarto

Potrzebujesz pomocy z C, C++, perl, python, itp.
kred9k
Posty: 8
Rejestracja: 12 października 2011, 12:40

Wylistowanie na ekranie zawartości katalogu

Post autor: kred9k »

Witam.
Od razu powiem, że jestem laikiem i potrzebuję pomocy bardziej zaawansowanych programistów. Chciałbym stworzyć taki skrypt który:

wylistuje pliki z katalogu np. system/app na ekranie tylko żeby czytał ten katalog wiersz po wierszu.

w katalogu system/app znajdują sie aplikacje i polecenie ls mi je wylistuje ale wszystkie na raz. a ja bym chciał aby skrypt czytał te pliki po kolei, linijka po linijce np.

Kod: Zaznacz cały

abcd.apk skrypt pyta czy skasować i wciskam tak przeskakuje do następnej linijki
efgh.apk skasować? tak
ijkl.apk skasować? tak
Jak wybiorę ,,nie'' to nadal przeskakuje, kończy dopiero jak skończą się pliki w katalogu.

Nie umiem właśnie tego zrobić aby po linijce wyświetlało chociaż, niech ktoś napisze jak to zrobić z resztą już sobie poradzę.
mam nadzieje ze zroozumieale to napisalem

Z góry dziękuję, czekam na sensowne odpowiedzi.
Awatar użytkownika
kodama
Junior Member
Posty: 633
Rejestracja: 23 maja 2010, 22:30
Lokalizacja: Poznań

Post autor: kodama »

Ech, ale żeś kolego napisał tego posta tak, że... Ale masz takie coś:

Kod: Zaznacz cały

for i in *;
  do
    echo "plik $i";
done
Będzie linijka po linijce wyświetlało kolejne elementy katalogu.
kred9k
Posty: 8
Rejestracja: 12 października 2011, 12:40

Post autor: kred9k »

Wiem przepraszam. Ale w czym ma mi pomoc ta pętla tzn. na pewno pomoże. Chyba, źle mnie zrozumiałeś. Ta pętla wylistuje mi wszystkie pliki w katalogu np., a ja potrzebuję inaczej. Tak jak napisałem wcześniej.
Awatar użytkownika
lessmian2
Member
Posty: 1088
Rejestracja: 30 kwietnia 2008, 19:38
Lokalizacja: Kraków

Post autor: lessmian2 »

@kred9k, słownik to by Ci się przydał jak nic ;) A że mam dobry humor, to masz:

Kod: Zaznacz cały

for dir in *
do 
        read -p "czy usunąć $dir?" answer
        case $answer in
                [Tt]* ) echo eremef $dir;;
                [Nn]* ) echo Nie to nie;;
        esac
done
Chyba o coś takiego Ci chodziło.
Awatar użytkownika
kodama
Junior Member
Posty: 633
Rejestracja: 23 maja 2010, 22:30
Lokalizacja: Poznań

Post autor: kodama »

Widzę, że kolega lessmian2 rozwinął ten krótki, przykładowy podany przeze mnie sposób. Generalnie to proste - wystarczy się zastanowić, pomyśleć i ew. posiłkować się internetem :]
Awatar użytkownika
Yampress
Administrator
Posty: 6422
Rejestracja: 09 sierpnia 2007, 21:41
Lokalizacja: PL

Post autor: Yampress »

Zawsze możesz:

Kod: Zaznacz cały

ls -R /

z przekierowaniem wyniku do pliku.
kred9k
Posty: 8
Rejestracja: 12 października 2011, 12:40

Post autor: kred9k »

Cześć.
Od wczoraj myślę jak zagnieździć plecenie rm, aby kasowało pliki ale nie wychodzi mi to. W książce jest napisane wszystko i o pętlach, tylko nie o tym jak je łączyć. Zrobiłem tak ale nie działa. Próbowałem też innych sposobów ale nic nie wychodzi.

Kod: Zaznacz cały

 #!/system/bin/bash

for dir in /sdcard/lol/* 
do
del=`rm -f`
if [ "$answer" = "$dir ]; then $del; fi
read -p "Czy usunac $dir?" answer 
case $answer in 
[Tt]* ) echo Skasowano;; 
[Nn]* ) echo Nie skasowano;; 
esac 
done
echo "Kasowanie zakonczone"
Awatar użytkownika
kodama
Junior Member
Posty: 633
Rejestracja: 23 maja 2010, 22:30
Lokalizacja: Poznań

Post autor: kodama »

Że tak zapytam: w czym problem, panie władzo? Przecież lessmian2 podał Ci na tacy gotowca :D No, w 99% gotowca. Zmienić musisz dokładnie jedną rzecz:

Kod: Zaznacz cały

[Tt]* ) echo [b]eremef[/b] $dir;;
kred9k
Posty: 8
Rejestracja: 12 października 2011, 12:40

Post autor: kred9k »

Tutaj też próbowałem, zrobiłem tak:

Kod: Zaznacz cały

[Tt] * ) echo eremef $dir && $del;;
i nie działa. Dlaczego?
mariaczi
Member
Posty: 1343
Rejestracja: 08 lutego 2008, 12:58
Lokalizacja: localhost@śląskie

Post autor: mariaczi »

Wybacz, ale coraz więcej jest osób podobnych do Ciebie. Chcą coś zrobić, jednak bez własnego wysiłku.
Nie działa, bo jest źle napisane.
Zapoznałeś się ze składnią polecenia del?

Wybaczcie mój wywód poza temat, ale nie wytrzymałem.
ODPOWIEDZ