Ich lerne Shell-Skript. Und ich möchte die Größe von Verzeichnissen (und Dateien) überprüfen. Ich machte ein Beispielskript alsWie erhalten Sie die Ergebnisse der Shell-Befehl Zeile für Zeile für sentese?
#!/bin/bash
for dir in $(du ".")
do
echo "dir = $dir"
read T_SIZE T_PATH <<< $dir
echo "T_SIZE = $T_SIZE"
echo "T_PATH = $T_PATH"
done
Die Struktur der Verzeichnisse unter dem aktuellen Verzeichnis hat nur ein Verzeichnis, "a".
Die Ergebnisse sind
dir = 4
T_SIZE = 4
T_PATH =
dir = ./a
T_SIZE = ./a
T_PATH =
dir = 16
T_SIZE = 16
T_PATH =
dir = .
T_SIZE = .
T_PATH =
Es scheint Befehl "du" Ergebnisse Wort für Wort gibt. Aber ich erwartete Befehl „du“ Ergebnisse Zeile für Zeile gibt und ich die Ergebnisse des Skripts oben erwartet
sind mirdir = 4
T_SIZE = 4
T_PATH = ./a
dir = 16
T_SIZE = 16
T_PATH = .
Bitte erzählen, was mir falsch oder einen Vorschlag war.
Vielen Dank.
In der Tat habe ich es nicht vollständig verstanden. Eine While-Schleife, wie John es vorgeschlagen hat, wäre die Antwort. –