text/x-shellscript;application/x-shellscript;text/x-sh
*.sh;*bashrc;.profile;.bash_profile
#
"
"
\\[$`"\\]
\\
'
'
\(
\)
`
`
[;\|&/]
\b[a-zA-Z_][a-zA-Z0-9_]+[ \t]*\(\)
>&+[0-9]
\b[0-9]+>&
\b[0-9]+>&+[0-9]
\b[0-9]+>
>>
\b[0-9]+>>
<&[0-9]
\b[0-9]+<&
\b[0-9]+<&[0-9]
\b[0-9]+<
<<+[0-9]
\b[0-9]+<<
# (?<!<) and [^\s<] are for not matching
# here-word (<<<)
(?<!<)
<<-?\s*\\?(
\"(?P<HDB>[^\s<]+)\" | # "EOF"
\'(?P<HDB>[^\s<]+)\' | # 'EOF'
(?P<HDB>[^\s<]+) # EOF
)$
^\t*\%{HDB@start}$
\-a\b
\-b\b
\-c\b
\-d\b
\-e\b
\-f\b
\-g\b
\-h\b
\-k\b
\-p\b
\-r\b
\-s\b
\-t\b
\-u\b
\-w\b
\-x\b
\-O\b
\-G\b
\-L\b
\-S\b
\-N\b
\-nt\b
\-ot\b
\-ef\b
\-o\b
\-z\b
\-n\b
<
>
\!=
\-eq\b
\-ne\b
\-lt\b
\-le\b
\-gt\b
\-ge\b
\$+[!@?*#\${a-zA-Z0-9_][}a-zA-Z0-9_]*
(^\s*|(?<=then|else|do|export)\s+)([a-zA-Z_][a-zA-Z0-9_]*)\=
\!
\{
\}
\:
(?<=\s)\.(?=\s)
\bfor\b
\b(in|do)\b
\w+
(?<![^\s;\(\)\`])
(?![^\s;\(\)\`])
do
done
elif
else
fi
for
function
if
in
select
then
until
while
alias
bg
bind
break
builtin
cd
command
compgen
complete
continue
declare
dirs
disown
echo
enable
eval
exec
exit
export
fc
fg
getopts
hash
help
history
jobs
let
local
logout
popd
printf
pushd
read
readonly
return
set
shift
shopt
source
suspend
test
times
trap
type
typeset
ulimit
umask
unalias
unset
wait
(?<![\w\-\.])
(?![\w\-\.])
ar
awk
basename
bash
beep
bunzip2
bzcat
bzcmp
bzdiff
bzegrep
bzfgrep
bzgrep
bzip2recover
bzip2
bzless
bzmore
cc
cat
chattr
chgrp
chmod
chown
chroot
clear
cmp
cpp
cp
cut
date
dd
df
dialog
diff3
diff
dirname
dir
du
egrep
eject
env
expr
false
fgrep
file
find
fmt
free
ftp
funzip
fuser
gawk
gcc
getent
getopt
grep
groups
gunzip
gzip
head
hostname
id
ifconfig
info
insmod
install
join
killall
kill
lastb
last
ld
less
ln
locate
lockfile
login
logname
lp
lpr
lsattr
ls
lsmod
make
man
mkdir
mkfifo
mknod
mktemp
modprobe
more
mount
mv
namei
nawk
nice
nl
passwd
patch
perl
pgawk
pidof
ping
pkg-config
pr
ps
pwd
readlink
renice
rmdir
rm
scp
sed
seq
sh
sleep
sort
split
ssh-add
ssh-agent
ssh-keygen
ssh-keyscan
ssh
stat
sudo
sum
su
sync
tac
tail
tar
tee
tempfile
touch
true
tr
umount
uname
uniq
unlink
unzip
uptime
wall
wc
wget
whereis
which
whoami
who
write
w
xargs
xdialog
zcat
zcmp
zdiff
zegrep
zenity
zfgrep
zforce
zgrep
zip
zless
zmore
znew
\bcase\b
\besac\b
[^\)\s]+\s*\)|;;