Bash

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.

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?

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:

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

Uwagi bashowych guru mile widziane ;)

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ć?

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"?

1

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

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

1 użytkowników online, w tym zalogowanych: 0, gości: 1