shellcheck recently added SC2330 checking for this. "which" is non-standard, and not guaranteed by POSIX to have a meaningful exit status, while "command -v" is specified by POSIX: https://stackoverflow.com/q/592620