The following line is valid POSIX SH (confirmed on 'posh' shell), but checkbashisms fails it: eval "x_$cmd() { explain $cmd "'"$@"'"; }" Here is a workaround for the moment (notice added spaces around the middle token) eval "x_$cmd() { explain $cmd " '"$@"' "; }" This suggests that checkbashisms has a bad tokenizer. All credit for the bug to my GSoC student, rabisg (guha.rabishankar). Keeping this open until upstream resolves it.
i switched us to the latest Debian version (which is where checkbashisms forked from in the first place) and it doesn't warn on this code http://gitweb.gentoo.org/repo/gentoo.git/commit/?id=5bd43e9ac265acdd453bf060cd2ee40cb946674d