2023年2月21日(火) 18:19 Kerin Millar <k...@plushkava.net>: > In this case, the values of the variables were not updated from within the > subshell, only the initial shell. I consider this to be surprising because > the manual does not mention any such limitation. Consequently, the utility of > the checkwinsize feature suffers in terms of being a potential alternative to > the invocation of stty(1) with the "size" operand (an operand which will > eventually be standard, but isn't yet).
I recently noticed that `checkwinsize' stopped working in the trap string and the `bind -x' context from Bash 5.2, which broke my script. Here's an example: $ bash-5.1 --norc -O checkwinsize $ trap 'echo $COLUMNS:$LINES; sleep 3; /bin/true; echo $COLUMNS:$LINES' WINCH $ 215:45 /* <-- change the terminal size twice. Note: the latter WINCH received while processing the first WINCH is discarded. */ 239:75 /* <-- after /bin/true, it is updated. */ exit $ bash-5.2 --norc -O checkwinsize $ trap 'echo $COLUMNS:$LINES; sleep 3; /bin/true; echo $COLUMNS:$LINES' WINCH $ 215:45 /* <-- change the terminal size twice. */ 215:45 /* <-- now it's not updated after /bin/true. */ exit It seems the behavior in the subshells didn't change in Bash 5.2 (i.e., checkwinsize didn't work in the subshells in 5.1 either), but I also hope that `checkwinsize' would be changed to work in any context (including subshells, trap handlers, bind -x, etc.). -- Koichi