Gibt es eine Möglichkeit, die Ausgabe von find (einige Argumente) zu wenigen Variablen zu speichern? Was ich tun muss, ist, die Ausgabe von find zu nehmen und sie als Eingabe für while zu verwenden und auch zu lesen. Ich kann den Test nicht mit -r -w oder -x verwenden (es ist eine akademische Übung).Bash finden | während lesen - einige Variablen
Etwas wie folgt aus:
find $1 -writable -printf "%f %p\n" , -readable -printf "%f %p\n" , -executable -printf "%f %p\n" | while read var1 var2 var3
do
echo $var1
echo $var2
echo $var3
done
In var1 ich nur beschreibbare Dateien haben wollen, var2 lesbar, var3 ausführbar. Stattdessen ist alles in var1.
Warum nicht gehen den einfachen Weg mit drei verschiedenen 'find' Befehle verwendbar könnte? Warum drei Datenströme kombinieren, um sie auseinander zu nehmen? – Jens
Ich kann nicht mehr als einen Fund in Übung verwenden. Wie auch immer, ich habe die Antwort bekommen. - read nimmt eine Zeile von dem, was eingegeben wird, und arbeitet damit. Wenn also find Dateien mit neuen Zeilenzeichen druckt, geht es immer nur zu einer Variablen. Anstatt las var1 var2 var3 direkt nach while, nachdem ich var1 nach while gelesen und var2 gelesen haben sollte, las var3 innerhalb der Schleife. Verwenden Sie also grundsätzlich mehr als nur einen Lesevorgang, wenn die Eingabe mit neuen Zeilen gedruckt wird. – zderzak678