The sad news is that the shellcheck
binary does not really know how to deal with zsh
scripts:
% shellcheck script.zsh
In script.zsh line 1:
#!/bin/zsh
^-- SC1071: ShellCheck only supports sh/bash/dash/ksh scripts. Sorry!
You can force shellcheck
to interpret a zsh
script with the --shell
option:
% shellcheck --shell=bash dirlist.sh
This might show errors, such as Quote to prevent word splitting/globbing
which aren’t really errors in zsh
so its usefulness will be limited.
If you want a specific script to be always interpreted as a bash
script by shellcheck
you can also add this line:
# shellcheck shell=bash
in the script, right after the shebang line.
This can be useful if you use zsh
in bash
emulation mode with
emulate -LR bash