From e0ee742e26969388065013206b9fbc2492dccd70 Mon Sep 17 00:00:00 2001 From: Ian Kelling Date: Thu, 14 Oct 2021 08:46:04 -0400 Subject: [PATCH] fix variable printing for newer bash --- err | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/err b/err index 76f3939..2a4077f 100644 --- a/err +++ b/err @@ -153,7 +153,7 @@ err-exit() { ## Begin printing vars from within BASH_COMMAND ## local _var _chars _l - local -a _vars + local -A _vars while [[ $_cmdr ]]; do _chars="${#_cmdr}" _cmdr="${_cmdr#*$}" @@ -165,16 +165,18 @@ err-exit() { if [[ ! $_var || $_var == [0-9]* ]]; then continue fi - _vars+=("${_var}=*") + _vars[${_var}]=t done + #echo "iank ${_vars[*]}" + #set |& grep ^password # in my small test, this took 50% longer than piping to grep. # That seems a small enough penalty to stay in bash here. if (( ${#_vars[@]} )); then set |& while read -r _l; do - for _var in "${_vars[@]}"; do - if [[ $_l == "$_var" ]]; then - printf "%s\n" "$_l" >&2 - fi + for _var in "${!_vars[@]}"; do + case $_l in + ${_var}=*) printf "%s\n" "$_l" >&2 ;; + esac done done fi -- 2.25.1