this post was submitted on 18 Aug 2024
88 points (96.8% liked)

ich_iel

1845 readers
777 users here now

Die offizielle Zweigstelle von ich_iel im Fediversum.

Alle Pfosten mĂĽssen den Titel 'ich_iel' haben, der Unterstrich darf durch ein beliebiges Symbol oder Bildschriftzeichen ersetzt werden. Ihr dĂĽrft euch frei entfalten!


Matrix


📱 Empfohlene Schlaufon-Applikationen für Lassmich


Befreundete Kommunen:


Regeln:

1. Seid nett zueinander

Diskriminierung anderer Benutzer, Beleidigungen und Provokationen sind verboten.

2. Pfosten mĂĽssen den Titel 'ich_iel' oder 'ich iel' haben

Nur Pfosten mit dem Titel 'ich_iel' oder 'ich iel' sind zugelassen. Alle anderen werden automatisch entfernt.

Unterstrich oder Abstand dĂĽrfen durch ein beliebiges Textsymbol oder bis zu drei beliebige Emojis ersetzt werden.

3. Keine Hochwähl-Maimais oder (Eigen)werbungAlle Pfosten, die um Hochwählis bitten oder Werbung beinhalten werden entfernt. Hiermit ist auch Eigenwerbung gemeint, z.b. für andere Gemeinschaften.
4. Keine Bildschirmschüsse von UnterhaltungenAlle Pfosten, die Bildschirmschüsse von Unterhaltungen, wie beispielsweise aus WasistApplikaton oder Zwietracht zeigen, sind nicht erlaubt. Hierzu zählen auch Unterhaltungen mit KIs.
5. Keine kantigen Beiträge oder Meta-Beiträgeich_iel ist kein kantiges Maimai-Brett. Meta-Beiträge, insbesondere über gelöschte oder gesperrte Beiträge, sind nicht erlaubt.
6. Keine ÜberfälleWer einen Überfall auf eine andere Gemeinschaft plant, muss diesen zuerst mit den Mods abklären. Brigadieren ist strengstens verboten.
7. Keine Ăś40-MaimaisMaimais, die es bereits in die WasistApplikation-Familienplauderei geschafft haben oder von RĂĽdiger beim letzten Stammtisch herumgezeigt wurden, sind besser auf /c/ichbin40undlustig aufgehoben.
8. ich_iel ist eine humoristische PlattformAlle Pfosten auf ich_iel müssen humorvoll gestaltet sein. Humor ist subjektiv, aber ein Pfosten muss zumindest einen humoristischen Anspruch haben. Die Atmosphäre auf ich_iel soll humorvoll und locker gehalten werden.
9. Keine Polemik, keine Köderbeiträge, keine FalschmeldungenBeiträge, die wegen Polemik negativ auffallen, sind nicht gestattet. Desweiteren sind Pfosten nicht gestattet, die primär Empörung, Aufregung, Wut o.Ä. über ein (insbesonders, aber nicht nur) politisches Thema hervorrufen sollen. Die Verbreitung von Falschmeldungen ist bei uns nicht erlaubt.


Bitte beachtet auch die Regeln von Feddit.org

founded 2 months ago
MODERATORS
 

Ihr mögt das, oder?

you are viewing a single comment's thread
view the rest of the comments
[–] needanke 9 points 3 weeks ago (9 children)

Du korrigiert syntax? Magst du das korrigieren, damit es in Speicherorten mit Ordnern die Leerzeichen im Namen haben funktioniert?

#!/bin/bash
while IFS= read -d $'\0' -r "dir" ; do 
      dir=${dir:2};
      echo "${dir}"\#;
      cd "'""${dir}""'" ;
      ls;
      ##etwas anderes am machen
     # cd  ..;
done < <(find ./  -mindepth 1 -maxdepth 1 -type d -print0)
[–] aaaaaaaaargh 6 points 3 weeks ago* (last edited 3 weeks ago) (6 children)

for d in */; do ls "$d"; done

[–] brotundspiele 4 points 3 weeks ago (1 children)

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 {} +
[–] aaaaaaaaargh 2 points 3 weeks ago (1 children)

Warum nicht einfach ls */

Weil ich das so verstanden hatte als dass OP gern irgendwas pro Verzeichnis ausfĂĽhren wollte. Das ls ist nur Platzhalter.

[–] brotundspiele 1 points 3 weeks ago (1 children)

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.

[–] aaaaaaaaargh 1 points 3 weeks ago (1 children)

Also entweder ist das eine Syntax, die ich nicht kenne (gut möglich), oder die ganze done-Zeile ergibt überhaupt keinen Sinn. Müsste es nicht eher << sein und auch eine Subshell, also $(...) anstatt einfach nur einem Klammernpaar?

Und grundsätzlich weiß ich nicht, wieso man das so kompliziert pipen möchte.

[–] brotundspiele 1 points 3 weeks ago* (last edited 3 weeks ago)

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.

load more comments (4 replies)
load more comments (6 replies)