The specific bashism I encountered is the '==' vs '=' with "[" (a.k.a. "test") , as mentioned in the Ubuntu Wiki DashAsBinSh page. The checkbashim script didn't catch it, but did catch several others of the sort and some other suspected bashisms.
Here's what I expected. $ keychain --list SHA256:naHaEbpU5fQ5aRpe7BqBnouFi7MOH8RQy+voLokY7ok SHA256:naHaEbpU5fQ5aRpe7BqBnouFi7MOH8RQy+voLokY7ok Here's what I actually get. $ keychain --list /usr/bin/keychain: 1537: [: SHA256:naHaEbpU5fQ5aRpe7BqBnouFi7MOH8RQy+voLokY7ok: unexpected operator SHA256:naHaEbpU5fQ5aRpe7BqBnouFi7MOH8RQy+voLokY7ok /usr/bin/keychain: 1537: [: SHA256:naHaEbpU5fQ5aRpe7BqBnouFi7MOH8RQy+voLokY7ok: unexpected operator SHA256:naHaEbpU5fQ5aRpe7BqBnouFi7MOH8RQy+voLokY7ok /usr/bin/keychain: 1537: [: end: unexpected operator end It's the "==" in line 1537 that conflicts with dash. If were just "=", it would work find with both dash and bash. [ "$key" == "end" ] && continue