Check for missing colon in default variable expansion
Don't warn on lack of bashisms in core bash configuration files!
Additionally, ShellCheck notes that set -o emacs is a bashism. checkbashisms should follow suit.
Fails to note that .bash_login is a standard bash configuration path
Confusion about whether set -o emacs is or is not a bashism
Identify more non-bash configuration filenames
-v rejected as POSIX compliant flag to `command`
-d flag to read is a bashism
true, false are not POSIX sh builtins
Flags to `command` are overly restricted
Option to check for bash4 specific code
Note that the for keyword is NOT a bashism. The for loop has been in POSIX sh for some time, though it can only be used with an array literal or with $@ (implicit when the "in foo bar baz" part is omitted), not with any kind of array variable. $@ is not a bashism. $* is not a bashism. ${@:someinteger} and "${@:someinteger}" ARE bashisms, as bare POSIX sh does not features these shift shorthand convenience forms.
(I spoke too early in this comment about treating some things like for, $@, and $* as bashisms.)
Note that the for keyword is NOT a bashism. The for loop has been in POSIX sh for some time, though it can only be used with an array literal or with $@ (implicit when the "in foo bar baz" part is omitted), not with any kind of array variable. $@ is not a bashism. $* is not a bashism.
And the $@, $* variables are bashisms. Though $# and shift are POSIX safe. Of course, double-quote protected forms like "${@...}" and "${*...}" are also bashisms.
Note that the for keyword is also a bashism. And the $@, $* variables are bashisms. Though $# and shift are POSIX safe. Of course, double-quote protected forms like "${@...}" and "${*...}" are also bashisms.
Note that the for keyword is also a bashism. And the $@, $* variables are bashisms. Though $# and shift are POSIX safe. Of course, double-quote protected forms like "${@...}" and "${@*...}" are also bashisms.
Note that the "for" keyword is also a bashism. And the $@, $* variables are bashisms. Though $# and shift are POSIX safe.
Note that the "for" keyword is also a bashism.
Check for anything to do with arrays
Exclude non-shell script files from linting
This would likely require some AST manipulation, not for the faint of heart.
Scanning Makefile's for bashisms
Consider set -o pipefail a bashism
look for new bash-4 features
portable syntax
Home+
the point of this script is to check for bashisms which is typically defined as "not...
the point of this script is to check for bashisms which is typically defined as "not...
Home+
Allowed by POSIX, but not some Unix shells (Test with osh, ash386). Warn user of...
simple patch
simple patch
simple fixes attached -- i think it best to just delete the tests details in each...
those are parenthesis, not braces. even then, this is perfectly valid POSIX code....
those are parenthesis, not braces. that is also valid POSIX shell code, so what exactly...
this is already handled. please post an example script where it doesn't work for...
`export foo=bar` failure is incorrect
Some modern descendants like ash/dash do not recognize source, only dot (.), making...
Note: Except for csh/tcsh, which are non-POSIX compliant. csh and tcsh only recognize...
Note: Except for csh/tcsh, which are non-POSIX compliant. csh and tcsh only recognizes...
Note: Except for csh/tcsh, which is non-POSIX compliant. csh and tcsh only recognizes...
Note: Except for csh, which is non-POSIX compliant. csh only recognizes source, not...
Encourage dot (`.`) over `source`
Hi Andrew. There is a problem on the sourceforge server side that I cannot fix. For...
Home page down
Unterminated quoted string found, EOF reached.