het vangen van de output van dd en het schrijven naar een file gaat goed.
het lezen van deze file gaat echter niet goed.
hier is het scriptfragment:
echo "start"
echo "$password" | sudo -S dd if="$isoFile" of="$usbDevice" bs=4M status=progress oflag=sync 2> output.txt &
dd_PID=$!
fileSize=$(wc -c "$isoFile" | awk '{print $1}')
echo $fileSize
running="Permission"
while [ "$running" = "Permission" ];
do
sleep 1
running="$(/proc/$dd_PID 2>&1)"
running=$(echo $running | cut -d ' ' -f 5)
echo "running"
perc="$(tail -n 1 output.txt)"
echo $perc
perc=$(echo $perc | cut -d ' ' -f 1)
echo $perc
done
wait
echo "done"
Hier is de output.txt:
[sudo] password for peer:
4194304 bytes (4,2 MB, 4,0 MiB) copied, 1 s, 3,9 MB/s
12582912 bytes (13 MB, 12 MiB) copied, 2 s, 5,1 MB/s
16777216 bytes (17 MB, 16 MiB) copied, 3 s, 5,4 MB/s
25165824 bytes (25 MB, 24 MiB) copied, 4 s, 5,6 MB/s
29360128 bytes (29 MB, 28 MiB) copied, 5 s, 5,7 MB/s
33554432 bytes (34 MB, 32 MiB) copied, 6 s, 5,4 MB/s
37748736 bytes (38 MB, 36 MiB) copied, 7 s, 5,2 MB/s
41943040 bytes (42 MB, 40 MiB) copied, 8 s, 5,0 MB/s
46137344 bytes (46 MB, 44 MiB) copied, 9 s, 5,1 MB/s
50331648 bytes (50 MB, 48 MiB) copied, 10 s, 4,9 MB/s
58720256 bytes (59 MB, 56 MiB) copied, 12 s, 4,9 MB/s
62914560 bytes (63 MB, 60 MiB) copied, 13 s, 5,0 MB/s
67108864 bytes (67 MB, 64 MiB) copied, 13 s, 5,0 MB/s
71303168 bytes (71 MB, 68 MiB) copied, 14 s, 5,1 MB/s
79691776 bytes (80 MB, 76 MiB) copied, 15 s, 5,2 MB/s
19+1 records in
19+1 records out
81096704 bytes (81 MB, 77 MiB) copied, 16,0011 s, 5,1 MB/s
en hier is de output in de terminal:
start
81096704
running
[sudo] password for peer:
[sudo]
running
4194304 bytes (4,2 MB, 4,0 MiB) copied, 1 s, 3,9 MB/s
[sudo]
running
12582912 bytes (13 MB, 12 MiB) copied, 2 s, 5,1 MB/ss
[sudo]
running
16777216 bytes (17 MB, 16 MiB) copied, 3 s, 5,4 MB/s
[sudo]
running
25165824 bytes (25 MB, 24 MiB) copied, 4 s, 5,6 MB/s
[sudo]
running
29360128 bytes (29 MB, 28 MiB) copied, 5 s, 5,7 MB/s
[sudo]
running
33554432 bytes (34 MB, 32 MiB) copied, 6 s, 5,4 MB/s
[sudo]
running
37748736 bytes (38 MB, 36 MiB) copied, 7 s, 5,2 MB/s
[sudo]
running
41943040 bytes (42 MB, 40 MiB) copied, 8 s, 5,0 MB/s
[sudo]
running
46137344 bytes (46 MB, 44 MiB) copied, 9 s, 5,1 MB/s
[sudo]
running
50331648 bytes (50 MB, 48 MiB) copied, 10 s, 4,9 MB/s
[sudo]
running
58720256 bytes (59 MB, 56 MiB) copied, 12 s, 4,9 MB/s
[sudo]
running
62914560 bytes (63 MB, 60 MiB) copied, 13 s, 5,0 MB/s
[sudo]
running
71303168 bytes (71 MB, 68 MiB) copied, 14 s, 5,1 MB/s
[sudo]
running
71303168 bytes (71 MB, 68 MiB) copied, 14 s, 5,1 MB/s
[sudo]
running
79691776 bytes (80 MB, 76 MiB) copied, 15 s, 5,2 MB/s
[sudo]
done
Merkwaardig is dat ik wel de juiste regel uit de output.txt krijg maar als ik daar het eerste woord uit selecteer dan krijg ik telkens het woord 'sudo' (het allereerste woord van de file)
Ik heb een while-loop die elke seconde checkt. Dat doet de status=progress van dd ook.