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

Reply via email to