Bash

BU
  • Rejestracja:ponad 8 lat
  • Ostatnio:ponad 6 lat
  • Postów:19
0

Witam,mam do zrobienia skrypt w bashu :
*
Zapisz do pliku kat.sh polecenie, które listuje na konsoli wykaz nazw podkatalogów katalogu
bieżącego, z wykorzystaniem polecenia test lub równoważnego.
*
Oczywiście otwieram edytor tekstu zaczynam pisać skrypt i w środku kodu poleceniem na wypisanie podkatalogów katalogu bieżącego używam komendy.

Kopiuj
find -maxdepth 1 -type d 

lecz nie jestem pewny czy to jest poprawne założenie,oraz pytanie jak to zrobić z wykorzystaniem polecenia test?

edytowany 3x, ostatnio: Bulailokiec
samouczek
  • Rejestracja:około 8 lat
  • Ostatnio:ponad 7 lat
  • Postów:67
2

Mam wrażenie, że tutaj autor pytania miał w głowie "jedyną słuszą odpowiedź", której on zawsze używa. Moim zdaniem Twoje rozwiązanie jest "OK", można się przyczepić do "listowania nazw" - ten find wylistuje Ci ścieżki względne katalogów, a nie nazwy katalogów.

Łopatologiczne rozwiązanie, które robi to co chciał autor:

Kopiuj
for x in `ls -A`; do if [ -d $x ]; then echo $x; fi; done

Uwagi bashowych guru mile widziane ;)

BU
  • Rejestracja:ponad 8 lat
  • Ostatnio:ponad 6 lat
  • Postów:19
0

Jestem ci bardzo wdzięczny,wszystko działa.
Mam problem jeszcze z jednym zadaniem,nie potrafię określić co miał na myśli prowadzący
Treść brzmi :

*Zaproponuj własny przykład użycia instrukcji for w postaci 2. Lista "do" winna zawierać minimum
dwa polecenia zależne od wartości zmiennych wykorzystywanych w drugim i trzecim
warunku.
*
Ktoś wie o co w tym chodzi i mniej więcej jak ma kod wyglądać?

edytowany 2x, ostatnio: Bulailokiec
samouczek
  • Rejestracja:około 8 lat
  • Ostatnio:ponad 7 lat
  • Postów:67
0

Zakładam, że "for w postaci 2." odnosi się do czegoś co było wcześniej. Co konkretnie jest tą drugą postacią pętli for? Polecenie tak samo wspomina o "wartościach zmiennych wykorzystywanych w drugim i trzecim warunku" - czym jest ten "drugi i trzeci warunek"?

R3
  • Rejestracja:ponad 11 lat
  • Ostatnio:około 18 godzin
  • Postów:419
1

Można wyeliminować ifa, "ls" zastąpić gwiazdką, zabezpieczyć się przed potencjalnym problemem ze spacjami w nazwie katalgu

Kopiuj
# GNU bash, version 4.3.46
for i in *; do [ -d "$i" ] && echo $i; done

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.