text/x-shellscript;application/x-shellscript;text/x-sh
*.sh;*bashrc;.profile;.bash_profile
#
[a-zA-Z_][a-zA-Z0-9_.-]*
[a-zA-Z_][a-zA-Z0-9_]*
[*@#?$!0-9_-]
(?<=\s|^)
(?=\s|[<>]|\\?$)
(?<=\s|[)`&|;]|^)
(?=[)`&|;])
(?<=\s|[()`&|;]|^)
(?=\s|[()`&|;<>]|\\?$)
"
"
\\[$`"\\]
'
'
\%{parentheses-prefix}\((?!\()
\)\%{rb}
\$\((?!\()
\)
\%{argument-prefix}[<>]\((?!\()
\)\%{rb}
\%{identifier}
(?<![\w\.]) ([2-9]|[1-5][0-9]|6[0-4])\#[0-9a-zA-Z_@]+ (?![\w\.])
&{2}|\|{2}
\$?\(
\)
\%{parentheses-prefix}\({2}(?!\()
\){2}\%{rb}
\$?\(
\)
\$\({2}(?!\()
\){2}
\(
\)
`
`
[&|;/]
\%{lb}(?:
(function)\s+\%{command-name}\s*(\(\s*\))? |
\%{command-name}\s*\(\s*\)
)
[0-9]*[<>](&)?[0-9]*-?
(&|[0-9]+)?>{1,2}[0-9]*-?
[0-9]*(<>|>\|)
(?<=.)(?=.)
# (?<!<) for not matching here-word (<<<)
(?<!<) <<-?\s* (
'(?P<HDB>[^']*)' # 'EOF'
| "(?P<HDB>[^"]*)" # "EOF"
)\%{rb}
^\t*\%{HDB@start}(?=`|$)
^
(?<!<) <<-?\s* (
(?P<HDB>[^\s()`&|;<>"'\#]+) # EOF
)\%{rb}
^\t*\%{HDB@start}(?=`|$)
^
\\[$`\\]
(?<=\s|\(|^)
\%{argument-suffix}
-a
-b
-c
-d
-e
-f
-g
-h
-k
-p
-r
-s
-t
-u
-w
-x
-G
-L
-N
-O
-S
-ef
-nt
-ot
-o
-v
-R
-z
-n
==
=~
=
!=
!
<
>
-eq
-ne
-lt
-le
-gt
-ge
\%{lb}\[{1,2}\%{argument-suffix}
\%{argument-prefix}\]{1,2}\%{rb}
\(
\)
\$(\%{identifier}|\%{special-parameter})
\$\{(?=[!#]?\%{identifier}|\%{special-parameter})
\}
(?<=\$\{)([!#]?)(\%{identifier}|\%{special-parameter})
\%{def:always-match}
\[
\]
\%{lb}\%{identifier}(?=(\[.*\])?\+?=)
\+?=
\[
\](?=\+?=)
\%{lb}(declare|local|typeset|readonly|export)\%{rb}
\%{command-suffix}
\%{argument-prefix}\%{identifier}
\%{lb}
\%{rb}
\!
\{
\}
\:
do
done
elif
else
fi
if
in
select
then
until
while
\%{lb}case\%{argument-suffix}
\%{lb}
\%{rb}
esac
\%{lb}for\%{argument-suffix}
(?=\S)
\%{identifier}
# Event Designator
((?<!\\)!) (?: (!|\#|-?[1-9][0-9]*) | (\?)[^?]+(\?|$)
| [^=("\s:$^*%-][^"\s:$^*%-]* )
(:|(?=[$^*%-])) ( (\^|[0-9]+)-(\$|[0-9]+) | (\^|[0-9]+)[*-]
| [$^%*] | [0-9]+ | -(\$|[0-9]+) )
\%{def:always-match}
\%{def:always-match}
:([htrepqx]|[agG]?&)
:[agG]?s
[[:print:]]
((?=\%{0@start})|$)
[[:print:]]
(\%{0@start}|$)
^(\^) ([^^]|\\^)* (\^) ([^^]|\\^)* (\^|$)\%{rb}
\%{lb}let\%{argument-suffix}
\%{command-suffix}
\%{lb}test\%{rb}
\%{command-suffix}
\%{lb}(?=\%{command-name}\%{rb})
\%{command-suffix}|(?=\()
\%{def:always-match}
\%{rb}
\.
alias
bg
bind
break
builtin
caller
cd
command
compgen
complete
compopt
continue
dirs
disown
echo
enable
eval
exec
exit
false
fc
fg
getopts
hash
help
history
jobs
kill
logout
mapfile
popd
printf
pushd
pwd
readarray
read
return
set
shift
shopt
source
suspend
times
trap
true
type
ulimit
umask
unalias
unset
wait
\%{rb}
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
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
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
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
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
\%{command-name}