2020 / day 7: final Bash cleanup

This commit is contained in:
2022-12-10 07:43:14 +01:00
parent 16da47600c
commit 8aff410ff4
2 changed files with 11 additions and 11 deletions

View File

@@ -136,10 +136,10 @@ aoc-c: res=2260
+++++++++++++++++ part 1
aoc.bash: res=1390824
time: 0:00.10 real, 0.07 user, 0.03 sys
context-switch: 8+1, page-faults: 0+312
time: 0:00.05 real, 0.03 user, 0.01 sys
context-switch: 7+1, page-faults: 0+307
+++++++++++++++++ part 2
aoc.bash: res=7490863
time: 0:00.10 real, 0.08 user, 0.01 sys
context-switch: 8+1, page-faults: 0+317
time: 0:00.05 real, 0.05 user, 0.00 sys
context-switch: 9+1, page-faults: 0+308

View File

@@ -37,18 +37,18 @@ do_cd() {
}
do_ls() {
local info file remain
local remain
local -i size
((curline++))
while [[ $curline -lt ${#lines[@]} && ${lines[$curline]:0:1} != "\$" ]]; do
read -r info file <<< "${lines[$curline]}"
if [[ $info != dir ]]; then # file
remain="$curdir/$file"
remain=${remain//+(\/)/\/}
if [[ "${lines[$curline]}" != dir* ]]; then
size=${lines[$curline]% *}
remain="$curdir"
while [[ -n $remain ]]; do # recurse up curdir and adjust sizes
((sizes[$remain] += info))
((sizes[$remain] += size))
remain=${remain%/*}
done
(( sizes["/"] += info ))
(( sizes["/"] += size ))
fi
((curline++))
done