Configuration Information [Automatically generated, do not change]: Machine: aarch64 OS: darwin24.4.0 Compiler: clang Compilation CFLAGS: -DSSH_SOURCE_BASHRC -DDEFAULT_LOADABLE_BUILTINS_PATH='/opt/homebrew/lib/bash:/usr/local/lib/bash:/usr/lib/bash:/opt/local/lib/bash:/usr/pkg/lib/bash:/opt/pkg/lib/bash:.' uname output: Darwin MacBookPro 24.5.0 Darwin Kernel Version 24.5.0: Tue Apr 22 19:54:49 PDT 2025; root:xnu-11417.121.6~2/RELEASE_ARM64_T6000 arm64 Machine Type: aarch64-apple-darwin24.4.0
Bash Version: 5.3 Patch Level: 0 Release Status: release Description: MacOS Homebrew bash '5.3.0(1)-release' (apparently?) breaks 'wait' bash-settings are as follows (in my experiments, the sole critical setting is "posix on") "${BASH_VERSION}" == '5.3.0(1)-release' allexport off braceexpand on emacs on errexit off errtrace off functrace off hashall on histexpand on history on ignoreeof off interactive-comments on keyword off monitor on noclobber off noexec off noglob off nolog off notify off nounset off onecmd off physical off pipefail off posix on privileged off verbose off vi off xtrace off Repeat-By: # SUMMARY: the following three commands # minimally elicit a failure-to-wait bug set -o posix ; mapfile -t JOBS < <(jobs -rp); sleep 10 & wait -f -n $! ; # FAILURE: 'wait' DOES NOT WAIT Fix: (1) failure-to-wait occurs not only for 'sleep', but for ANY asynchronous process (yikes!) (2) 'set +o posix' is a workaround (but alas, my existing scripts all assume posix-mode). (3) "$(ls -lad "$(which bash)")" returns (for me) /opt/homebrew/bin/bash -> ../Cellar/bash/5.3_1/bin/bash hence Homebrew's (recent) bash-update to '5.3_1' has NOT FIXED this (apparent) 'wait'-bug. (4) this (apparent) 'wait'-bug was NOT present in Homebrew's bash-releases prior to 5.3.0