Wylistowanie na ekranie zawarto

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

Post autor: kred9k »

Jaką składnia del? Chodziło mi o zmienną

Kod: Zaznacz cały

del=`rm -f`

Dobrze, już mam zmienną, źle napisałem. Musiałem napisać tak

Kod: Zaznacz cały

del=`rm -f $dir` heh
Jenak nie działa bo jak naciskam to i tak kasuje ten plik.
mariaczi
Member
Posty: 1343
Rejestracja: 08 lutego 2008, 12:58
Lokalizacja: localhost@śląskie

Post autor: mariaczi »

Czy na pewno teraz masz tak jak tego oczekujesz?
Żebyś się nie zdziwił, jak zobaczysz swój katalog pusty mimo odpowiedzi [Nn].
Zajrzyj tu: http://4programmers.net/BASH/Instrukcja_case


Dodane:
Tutaj masz jak na tacy, przykład tego co chciałeś uzyskać (no prawie)
http://www.thegeekstuff.com/2010/07/bas ... statement/ w punkcie "Bash Case Example 4. Prompt User with Yes or No"
kred9k
Posty: 8
Rejestracja: 12 października 2011, 12:40

Post autor: kred9k »

Kod: Zaznacz cały

#!/system/bin/bash

for dir in /sdcard/lol/* 
do 
#del=`rm -R`
read -p "czy usunąć $dir?" answer 
case $answer in 
[Tt]* ) echo "Skasowano"; rm -f;;
[Nn]* ) echo Nie skasowano;; 
esac 
done
I co, obie tak jak jest tam napisane i nie działa, a robię identycznie, po pojedynczym średniku jakieś inne polecenie i kicha.
Ze zmienną też nie działa.

Edycja:
Idzie się w tym zamotać. Już mam, dodałem:

Kod: Zaznacz cały

t) echo skasowano; rm -r "$dir";; 
Tylko jakoś katalogów z tego katalogu nie chce usuwać.
Awatar użytkownika
kodama
Junior Member
Posty: 633
Rejestracja: 23 maja 2010, 22:30
Lokalizacja: Poznań

Post autor: kodama »

Może nie męczmy już tego tematu, bo to nie wiem czy jest sens.
Najłatwiej to zamiast:

Kod: Zaznacz cały

rm -r
zrób tak

Kod: Zaznacz cały

rm -rf
i będziesz miał załatwione ;) Ale instrukcje jednak warto czytać. Zwłaszcza, że ta do rm jakaś wybitnie ogromna nie jest.
kred9k
Posty: 8
Rejestracja: 12 października 2011, 12:40

Post autor: kred9k »

Nie no, nie kończmy tego wątku panowie, ja tu będę miał dużo problemów pewnie, a po to jest forum żeby pomagać, a więc zrobiłem takie coś:

Kod: Zaznacz cały

 #!/system/bin/bash

if [ "$#" != 0 ]; then echo Ok kontynuujemy!; echo; else echo Blad! Podaj folder do kasacji.; exit; fi

for dir in $1/*
do 
echo -e "Czy usunac plik $dir?"
read odpowiedz 
case $odpowiedz in 
[Tt][Aa][Kk] | [Tt]* ) echo Skasowano plik; rm -r "$dir"; echo;;
[Nn][Ii][Ee] | [Nn]* ) echo Nie skasowano pliku; echo;;
[Ww][Yy][Jj][Dd][Zz] | [Ww]* ) echo Koniec skryptu; echo --------------; exit;;
* ) echo; echo Opcje wyboru to: Tak/Nie lub T/N; echo; echo Jesli chcesz wyjsc wpisz Wyjdz lub W; exit;;
esac 
done
echo --------------------
echo "Kasowanie Zakonczone"
Mój problem leży teraz w tym, że jeśli wybiorę pusty katalog to pokazuje mi się takie coś:

Kod: Zaznacz cały

nazwakatalogu/*
Jak zamaskować to /*, gdy jest katalog z zawartością to jest w porządku. Najlepiej by było gdyby skrypt powiadamiał, że katalog jest pusty. Próbowałem to zrobić ale nie bardzo wiem jak określić pusty katalog w ,,if''. Czy się widuje to?
Awatar użytkownika
Bastian
Member
Posty: 1424
Rejestracja: 30 marca 2008, 16:09
Lokalizacja: Poznañ

Post autor: Bastian »

Kolego kred9k:

http://mywiki.wooledge.org/BashGuide

Ta lektura jest dla Ciebie niezbędna.
kred9k
Posty: 8
Rejestracja: 12 października 2011, 12:40

Post autor: kred9k »

bastian, pomoc pierwsza klasa, takich książek to już chyba ze cztery przeczytałem. Jakbym wiedział jak to zrobić to bym nie napisał na forum.

U
dało mi się wczytać takie coś:

Kod: Zaznacz cały

${parametr%słowo}
zrobiłem więc tak:

Kod: Zaznacz cały

katalog="$1/*"
${katalog%/*} yyy
Usuwa te znaki ale co z tego jak później skrypt nie działa jak powinien.
fnmirk
Senior Member
Posty: 8321
Rejestracja: 03 grudnia 2007, 06:37

Post autor: fnmirk »

kred9k, zacznij używać znaczników ,,code'' i zacznij używać znaków przestankowych. Zainstaluj sobie słownik języka polskiego.
ODPOWIEDZ