On Wed, Aug 12, 2015 at 10:51:26AM -0700, Christopher Larson wrote: > That reminds me, there's a shell portability issue / standards-complaince > issue that's not identified by shellcheck. Typically, to negate a bracket > expression in a regular expression, one uses ^, e.g. [^a-z] is everything > that isn't in the range a to z, but that's not the case in shell, e.g. at a > prompt or in a ${foo#<pattern>}: > > "[...]a bracket expression as in XBD *RE Bracket Expression* , except > that the <exclamation-mark> character ( '!' ) shall replace the > <circumflex> character ( '^' ) in its role in a non-matching list in the > regular expression notation" > > So in shell, you'd want [!a-z] rather than [^a-z]. Nearly all shells handle > both, but the behavior of the latter is actually unspecified according to > the standard: > > "A bracket expression starting with an unquoted <circumflex> character > produces unspecified results." > > I recently got bitten by this with one of my shell scripts on a system > running dash.
Does checkbashisms warn about this? -Mikko -- _______________________________________________ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core