Hey, das ist nicht fair. Es gibt auch noch "Opfer der EU-Regulation" und "Opfer der geizigen Verbraucher"!
brotundspiele
Es ist doch erst 5 Uhr 15. Dann kann ich mich ja noch mal umdrehen 😴
Ich hätte auch einfach find ... | while read ...
geschrieben, aber warum einfach, wenn's auch kompliziert geht.
<(kommando) nennt sich Prozesssubstitution. Vereinfacht gesagt, wird die Ausgabe des Kommandos in eine benannte Pfeife umgeleitet und das <() dann durch deren Namen ersetzt. Das ist ganz praktisch, wenn ein Kommando Eingaben nur als Dateinamen erwartet und nicht mit stdein arbeiten kann. Z.B. um den Inhalt zweier Verzeichnisse zu vergleichen:
diff <(ls foo/) <(ls bar/)
Mit <
leitet man den Inhalt einer Datei an die stdein eines Befehls weiter. Der Vorteil der Version von OP ist, dass für den While-Teil keine Untermuschel aufgemacht wird. Wenn man also nach der Schleife noch mal auf Variablen zurückgreifen möchte, die man in der Schleife gesetzt hat, funktioniert mein Beispiel mit dem |
nicht, bzw. nicht in jeder Version von jeder Muschel.
Ah, den Kommentar hat mein Gehirn zwischen den ganzen "'"'${}'"';
auf dem Handy wohl einfach ausgeblendet.
Für mich funktioniert das Script übrigens fast unverändert, sogar mit Ordnern die " " oder "
" heißen.
Ich habe nur die ganzen überflüssigen " und $ und { und ' entfernt und das ... am Ende wieder eingefügt. Ach ja, und das | exit
eingefügt, damit das Script bei fehlschlagendem Verzeichniswechsel nicht komplett Amok läuft. Das war ein guter Tipp von shellcheck:
#!/bin/bash
while IFS= read -d $'\0' -r "dir" ; do·
cd "$dir" || exit
pwd
ls
touch penis
cd ..
done < <(find ./ -mindepth 1 -maxdepth 1 -type d -print0)
Je nachdem, was Du mit dem kram vorhast, bitte auch noch diese Sicherheitshinweise beachten.
Also ist weiß Nichte Wasser habt. bei meinem Hamster funktioniert die Autokorso ganz Fanta Tisch.
Warum nicht einfach
ls */
Falls das find wichtig sein sollte, das nämlich nur echte Verzeichnisse findet und keine symbolischen Verknüpfungen auf Verzeichnisse, ginge auch
find . -mindepth 1 -maxdepth 1 -type d -exec ls {} +
Gratis Pilze. Yay! 😊
Ein weiterer, nicht zu unterschätzender Faktor ist Blödheit.
Ich wusste gar nicht, dass Brechen inzwischen auch olympisch ist. 🤢🤮
Ach Mark, Ostmark, das sind doch bürgerliche Kategorien.
Waaas?
Warum kann man denn nicht einfach mit beiden befreundet sein? Ist ja nicht so, dass die sich gegenseitig ausschließen würden, oder? Also wenn Du das endoplasmatische Retikulum für einen Prokaryoten sitzen lässt, ok. Oder wenn Du der primordialen Nukleosynthese die Freundschaft kündigst, weil Du jetzt lieber mit dem Junge-Erde-Kreationismus feiern gehst, das könnte ich verstehen. Aber so?