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 +++++++++++++++++ part 1
aoc.bash: res=1390824 aoc.bash: res=1390824
time: 0:00.10 real, 0.07 user, 0.03 sys time: 0:00.05 real, 0.03 user, 0.01 sys
context-switch: 8+1, page-faults: 0+312 context-switch: 7+1, page-faults: 0+307
+++++++++++++++++ part 2 +++++++++++++++++ part 2
aoc.bash: res=7490863 aoc.bash: res=7490863
time: 0:00.10 real, 0.08 user, 0.01 sys time: 0:00.05 real, 0.05 user, 0.00 sys
context-switch: 8+1, page-faults: 0+317 context-switch: 9+1, page-faults: 0+308

View File

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