Linux ns1.utparral.edu.mx 6.8.0-79-generic #79~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Fri Aug 15 16:54:53 UTC 2 x86_64
Apache/2.4.58 (Unix) OpenSSL/1.1.1w PHP/8.2.12 mod_perl/2.0.12 Perl/v5.34.1
: 10.10.1.9 | : 10.10.1.254
Cant Read [ /etc/named.conf ]
daemon
Terminal
AUTO ROOT
Adminer
Backdoor Destroyer
Linux Exploit
Lock Shell
Lock File
Create User
README
+ Create Folder
+ Create File
/
usr /
share /
gtksourceview-4 /
language-specs /
[ HOME SHELL ]
Name
Size
Permission
Action
abnf.lang
3.54
KB
-rw-r--r--
actionscript.lang
8.64
KB
-rw-r--r--
ada.lang
7.05
KB
-rw-r--r--
ansforth94.lang
22.6
KB
-rw-r--r--
asciidoc.lang
22.17
KB
-rw-r--r--
asp.lang
40.88
KB
-rw-r--r--
automake.lang
11.15
KB
-rw-r--r--
awk.lang
4.15
KB
-rw-r--r--
bennugd.lang
8.81
KB
-rw-r--r--
bibtex.lang
3.75
KB
-rw-r--r--
bluespec.lang
5.79
KB
-rw-r--r--
boo.lang
8.42
KB
-rw-r--r--
cg.lang
10.05
KB
-rw-r--r--
changelog.lang
3.41
KB
-rw-r--r--
chdr.lang
1.77
KB
-rw-r--r--
c.lang
11.95
KB
-rw-r--r--
cmake.lang
57.69
KB
-rw-r--r--
cobol.lang
20.8
KB
-rw-r--r--
commonlisp.lang
17.14
KB
-rw-r--r--
cpphdr.lang
1.41
KB
-rw-r--r--
cpp.lang
5.15
KB
-rw-r--r--
csharp.lang
9.4
KB
-rw-r--r--
css.lang
89
KB
-rw-r--r--
csv.lang
2.36
KB
-rw-r--r--
cuda.lang
10.25
KB
-rw-r--r--
dart.lang
9.47
KB
-rw-r--r--
def.lang
13.67
KB
-rw-r--r--
desktop.lang
10.7
KB
-rw-r--r--
diff.lang
2.99
KB
-rw-r--r--
d.lang
9.83
KB
-rw-r--r--
docbook.lang
15.98
KB
-rw-r--r--
docker.lang
5.59
KB
-rw-r--r--
dosbatch.lang
5.08
KB
-rw-r--r--
dot.lang
4.42
KB
-rw-r--r--
dpatch.lang
1.49
KB
-rw-r--r--
dtd.lang
4.52
KB
-rw-r--r--
dtl.lang
9.9
KB
-rw-r--r--
eiffel.lang
7.11
KB
-rw-r--r--
erb-html.lang
1.28
KB
-rw-r--r--
erb-js.lang
1.26
KB
-rw-r--r--
erb.lang
2.16
KB
-rw-r--r--
erlang.lang
8.26
KB
-rw-r--r--
fcl.lang
3.75
KB
-rw-r--r--
fish.lang
15.61
KB
-rw-r--r--
forth.lang
9.34
KB
-rw-r--r--
fortran.lang
22.95
KB
-rw-r--r--
fsharp.lang
10.79
KB
-rw-r--r--
ftl.lang
3.06
KB
-rw-r--r--
gap.lang
2.72
KB
-rw-r--r--
gdb-log.lang
6.81
KB
-rw-r--r--
gdscript.lang
9.94
KB
-rw-r--r--
genie.lang
7.62
KB
-rw-r--r--
glsl.lang
17.25
KB
-rw-r--r--
go.lang
10.28
KB
-rw-r--r--
gradle.lang
1.69
KB
-rw-r--r--
groovy.lang
11.92
KB
-rw-r--r--
gtk-doc.lang
3.66
KB
-rw-r--r--
gtkrc.lang
4.12
KB
-rw-r--r--
haddock.lang
5.92
KB
-rw-r--r--
haskell.lang
8.15
KB
-rw-r--r--
haskell-literate.lang
1.73
KB
-rw-r--r--
haxe.lang
7.71
KB
-rw-r--r--
html.lang
15.08
KB
-rw-r--r--
idl-exelis.lang
20.63
KB
-rw-r--r--
idl.lang
5.06
KB
-rw-r--r--
imagej.lang
29.42
KB
-rw-r--r--
ini.lang
3.5
KB
-rw-r--r--
jade.lang
6.53
KB
-rw-r--r--
java.lang
6.57
KB
-rw-r--r--
javascript-expressions.lang
31.3
KB
-rw-r--r--
javascript-functions-classes.lang
17.41
KB
-rw-r--r--
javascript.lang
39.48
KB
-rw-r--r--
javascript-literals.lang
21.86
KB
-rw-r--r--
javascript-modules.lang
13.45
KB
-rw-r--r--
javascript-statements.lang
28.97
KB
-rw-r--r--
javascript-values.lang
30.39
KB
-rw-r--r--
j.lang
7.45
KB
-rw-r--r--
jsdoc.lang
7.62
KB
-rw-r--r--
json.lang
4.23
KB
-rw-r--r--
jsx.lang
13.83
KB
-rw-r--r--
julia.lang
14.03
KB
-rw-r--r--
kotlin.lang
13.19
KB
-rw-r--r--
language2.rng
12.93
KB
-rw-r--r--
language.dtd
2.29
KB
-rw-r--r--
language.rng
10.78
KB
-rw-r--r--
latex.lang
25.25
KB
-rw-r--r--
lean.lang
4.81
KB
-rw-r--r--
less.lang
30.95
KB
-rw-r--r--
lex.lang
6.14
KB
-rw-r--r--
libtool.lang
1.83
KB
-rw-r--r--
llvm.lang
10.05
KB
-rw-r--r--
logcat.lang
3.35
KB
-rw-r--r--
logtalk.lang
14.22
KB
-rw-r--r--
lua.lang
10.2
KB
-rw-r--r--
m4.lang
45.03
KB
-rw-r--r--
makefile.lang
6.03
KB
-rw-r--r--
mallard.lang
3.69
KB
-rw-r--r--
markdown.lang
15.17
KB
-rw-r--r--
matlab.lang
4.87
KB
-rw-r--r--
maxima.lang
65.65
KB
-rw-r--r--
mediawiki.lang
10.68
KB
-rw-r--r--
meson.lang
5.72
KB
-rw-r--r--
modelica.lang
9.26
KB
-rw-r--r--
mxml.lang
2.16
KB
-rw-r--r--
nemerle.lang
8.21
KB
-rw-r--r--
netrexx.lang
10.36
KB
-rw-r--r--
nsis.lang
2.65
KB
-rw-r--r--
objc.lang
4
KB
-rw-r--r--
objj.lang
20.85
KB
-rw-r--r--
ocaml.lang
9.72
KB
-rw-r--r--
ocl.lang
5.24
KB
-rw-r--r--
octave.lang
59.04
KB
-rw-r--r--
ooc.lang
8.51
KB
-rw-r--r--
opal.lang
10.98
KB
-rw-r--r--
opencl.lang
20.36
KB
-rw-r--r--
pascal.lang
8.28
KB
-rw-r--r--
perl.lang
36.58
KB
-rw-r--r--
php.lang
13.05
KB
-rw-r--r--
pig.lang
9.35
KB
-rw-r--r--
pkgconfig.lang
1.93
KB
-rw-r--r--
po.lang
3.33
KB
-rw-r--r--
powershell.lang
22.5
KB
-rw-r--r--
prolog.lang
8.2
KB
-rw-r--r--
protobuf.lang
4.4
KB
-rw-r--r--
puppet.lang
23.67
KB
-rw-r--r--
python3.lang
10.35
KB
-rw-r--r--
python.lang
16.99
KB
-rw-r--r--
R.lang
77.54
KB
-rw-r--r--
rpmspec.lang
7.5
KB
-rw-r--r--
rst.lang
7.5
KB
-rw-r--r--
ruby.lang
26.91
KB
-rw-r--r--
rust.lang
10.39
KB
-rw-r--r--
scala.lang
12.63
KB
-rw-r--r--
scheme.lang
10.17
KB
-rw-r--r--
scilab.lang
6.87
KB
-rw-r--r--
scss.lang
33.21
KB
-rw-r--r--
sh.lang
36.39
KB
-rw-r--r--
sml.lang
6.43
KB
-rw-r--r--
solidity.lang
10.87
KB
-rw-r--r--
sparql.lang
16.34
KB
-rw-r--r--
spice.lang
13.07
KB
-rw-r--r--
sql.lang
24.71
KB
-rw-r--r--
star.lang
3.57
KB
-rw-r--r--
sweave.lang
2.18
KB
-rw-r--r--
swift.lang
16.21
KB
-rw-r--r--
systemverilog.lang
8.6
KB
-rw-r--r--
t2t.lang
5.21
KB
-rw-r--r--
tcl.lang
4.46
KB
-rw-r--r--
tera.lang
5.12
KB
-rw-r--r--
terraform.lang
15.23
KB
-rw-r--r--
texinfo.lang
15.23
KB
-rw-r--r--
thrift.lang
8.45
KB
-rw-r--r--
toml.lang
8.46
KB
-rw-r--r--
typescript-js-expressions.lang
7.5
KB
-rw-r--r--
typescript-js-functions-classes.lang
23.42
KB
-rw-r--r--
typescript-js-literals.lang
5.05
KB
-rw-r--r--
typescript-js-modules.lang
9.94
KB
-rw-r--r--
typescript-js-statements.lang
17.81
KB
-rw-r--r--
typescript-jsx.lang
6.52
KB
-rw-r--r--
typescript.lang
38.59
KB
-rw-r--r--
typescript-type-expressions.lang
19.39
KB
-rw-r--r--
typescript-type-generics.lang
8.56
KB
-rw-r--r--
typescript-type-literals.lang
13.83
KB
-rw-r--r--
vala.lang
13.04
KB
-rw-r--r--
vbnet.lang
7.78
KB
-rw-r--r--
verilog.lang
15.54
KB
-rw-r--r--
vhdl.lang
7.68
KB
-rw-r--r--
xml.lang
9.23
KB
-rw-r--r--
xslt.lang
3.83
KB
-rw-r--r--
yacc.lang
5.65
KB
-rw-r--r--
yaml.lang
8.71
KB
-rw-r--r--
yara.lang
6.31
KB
-rw-r--r--
Delete
Unzip
Zip
${this.title}
Close
Code Editor : sh.lang
<?xml version="1.0" encoding="UTF-8"?> <!-- This file is part of GtkSourceView Author: Silian Della Ragione <silian87@gechi.it> Copyright (C) 2005 Silian Della Ragione <silian87@gechi.it> Copyright (C) 2008 Steve Frécinaux <code@istique.net> GtkSourceView is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. GtkSourceView is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, see <http://www.gnu.org/licenses/>. --> <language id="sh" name="sh" version="2.0" _section="Script"> <metadata> <property name="mimetypes">text/x-shellscript;application/x-shellscript;text/x-sh</property> <property name="globs">*.sh;*bashrc;.profile;.bash_profile</property> <property name="line-comment-start">#</property> </metadata> <styles> <style id="comment" name="Comment" map-to="def:comment"/> <style id="function" name="Function" map-to="def:function"/> <style id="string" name="String" map-to="def:string"/> <style id="keyword" name="Keyword" map-to="def:keyword"/> <!-- FIXME: need to sort out proper styles for variables --> <style id="variable" name="Variable" map-to="def:type"/> <style id="variable-definition" name="Variable Definition" map-to="sh:variable"/> <style id="others" name="Others" map-to="def:keyword"/> <style id="common-command" name="Common Commands" map-to="def:keyword"/> <style id="here-doc-bound" name="Heredoc Bound" map-to="def:keyword"/> <style id="subshell" name="Subshell" map-to="def:preprocessor"/> </styles> <definitions> <define-regex id="command-name">[a-zA-Z_][a-zA-Z0-9_.-]*</define-regex> <define-regex id="identifier">[a-zA-Z_][a-zA-Z0-9_]*</define-regex> <define-regex id="special-parameter">[*@#?$!0-9_-]</define-regex> <define-regex id="argument-prefix">(?<=\s|^)</define-regex> <define-regex id="argument-suffix">(?=\s|[<>]|\\?$)</define-regex> <define-regex id="parentheses-prefix">(?<=\s|[)`&|;]|^)</define-regex> <define-regex id="command-suffix">(?=[)`&|;])</define-regex> <define-regex id="lb">(?<=\s|[()`&|;]|^)</define-regex> <define-regex id="rb">(?=\s|[()`&|;<>]|\\?$)</define-regex> <!-- we cannot use def:shell-like-comment, because m4.lang needs to replace this context --> <context id="line-comment" style-ref="comment" end-at-line-end="true" class="comment" class-disabled="no-spell-check"> <start>\%{argument-prefix}#</start> <include> <context ref="def:in-comment"/> </include> </context> <context id="double-quoted-string" style-ref="string" class="string" class-disabled="no-spell-check"> <start>"</start> <end>"</end> <include> <!-- highlight escaped chars --> <context style-ref="def:special-char"> <match>\\[$`"\\]</match> </context> <context ref="def:line-continue"/> <context ref="variable"/> <context ref="backtick-subshell"/> <context ref="command-substitution"/> <context ref="arithmetic-expansion"/> <context ref="history-expansion-command"/> </include> </context> <context id="single-quoted-string" style-ref="string" class="string" class-disabled="no-spell-check"> <start>'</start> <end>'</end> </context> <context id="subshell" style-ref="subshell"> <start>\%{parentheses-prefix}\((?!\()</start> <end>\)\%{rb}</end> <include> <context sub-pattern="0" where="start" style-ref="keyword"/> <context sub-pattern="0" where="end" style-ref="keyword"/> <context ref="sh"/> </include> </context> <context id="command-substitution" style-ref="subshell" class="no-spell-check"> <start>\$\((?!\()</start> <end>\)</end> <include> <context sub-pattern="0" where="start" style-ref="keyword"/> <context sub-pattern="0" where="end" style-ref="keyword"/> <context ref="sh"/> </include> </context> <context id="process-substitution" style-ref="subshell"> <start>\%{argument-prefix}[<>]\((?!\()</start> <end>\)\%{rb}</end> <include> <context sub-pattern="0" where="start" style-ref="keyword"/> <context sub-pattern="0" where="end" style-ref="keyword"/> <context ref="sh"/> </include> </context> <context id="reference-by-name" style-ref="variable"> <match>\%{identifier}</match> </context> <context id="numeral-system"> <include> <context id="base-n-integer" style-ref="def:base-n-integer"> <match extended="true"> (?<![\w\.]) ([2-9]|[1-5][0-9]|6[0-4])\#[0-9a-zA-Z_@]+ (?![\w\.]) </match> </context> <context ref="def:hexadecimal"/> <context ref="def:octal"/> <context ref="def:decimal"/> </include> </context> <context id="logical-operator" style-ref="others"> <match>&{2}|\|{2}</match> </context> <context id="evaluation-nesting"> <include> <!-- Must be included first, to ensure unescaped boundaries --> <context ref="def:escape"/> <context ref="def:line-continue"/> <context ref="single-quoted-string"/> <context ref="double-quoted-string"/> <context ref="backtick-subshell"/> <context ref="command-substitution"/> <context ref="history-expansion"/> <context ref="variable"/> <context ref="reference-by-name"/> <context ref="numeral-system"/> <context ref="logical-operator"/> </include> </context> <!-- Defined like this, "precedence" also emulates the inclusion of "arithmetic-evaluation" and "arithmetic-expansion" --> <context id="evaluation-precedence"> <start>\$?\(</start> <end>\)</end> <include> <context sub-pattern="0" where="start" style-ref="keyword"/> <context sub-pattern="0" where="end" style-ref="keyword"/> <context ref="evaluation-nesting"/> <context ref="evaluation-precedence"/> </include> </context> <context id="arithmetic-evaluation"> <start>\%{parentheses-prefix}\({2}(?!\()</start> <end>\){2}\%{rb}</end> <include> <context sub-pattern="0" where="start" style-ref="keyword"/> <context sub-pattern="0" where="end" style-ref="keyword"/> <context ref="evaluation-nesting"/> <context ref="evaluation-precedence"/> </include> </context> <context id="expansion-nesting"> <include> <context ref="def:line-continue"/> <context ref="double-quoted-string"/> <context ref="backtick-subshell"/> <context ref="command-substitution"/> <context ref="variable"/> <context ref="history-expansion"/> <context ref="reference-by-name"/> <context ref="numeral-system"/> <context ref="logical-operator"/> </include> </context> <context id="expansion-precedence"> <start>\$?\(</start> <end>\)</end> <include> <context sub-pattern="0" where="start" style-ref="keyword"/> <context sub-pattern="0" where="end" style-ref="keyword"/> <context ref="expansion-nesting"/> <context ref="expansion-precedence"/> </include> </context> <context id="arithmetic-expansion" class="no-spell-check"> <start>\$\({2}(?!\()</start> <end>\){2}</end> <include> <context sub-pattern="0" where="start" style-ref="keyword"/> <context sub-pattern="0" where="end" style-ref="keyword"/> <context ref="expansion-nesting"/> <context ref="expansion-precedence"/> </include> </context> <!-- Exclusions above in <start>/<end> tags enable highlighting only for unambiguous nesting of subshells and arithmetic evaluations/expansions. This covers the remainder and array definition, with default highlighting --> <context id="default-subshell"> <start>\(</start> <end>\)</end> <include> <context sub-pattern="0" where="start" style-ref="keyword"/> <context sub-pattern="0" where="end" style-ref="keyword"/> <context ref="sh"/> </include> </context> <!-- Treated separately, not including itself nor command-like contexts (see https://gitlab.gnome.org/GNOME/gtksourceview/issues/94) --> <context id="backtick-subshell" style-ref="subshell" class="no-spell-check"> <start>`</start> <end>`</end> <include> <!-- Must be included first, to ensure unescaped boundaries --> <context ref="def:escape"/> <context ref="line-comment"/> <context ref="def:line-continue"/> <context ref="single-quoted-string"/> <context ref="double-quoted-string"/> <context ref="subshell"/> <context ref="command-substitution"/> <context ref="process-substitution"/> <context ref="arithmetic-evaluation"/> <context ref="arithmetic-expansion"/> <!-- Must be included after all other parenthesized subshells --> <context ref="default-subshell"/> <context ref="punctuator"/> <context ref="function"/> <context ref="here-doc"/> <context ref="redirection"/> <context ref="variable"/> <context ref="stand-alone-variable-definition"/> <context ref="reserved-word"/> <context ref="case-command"/> <context ref="for-command"/> <context ref="history-expansion"/> <context ref="conditional-command"/> </include> </context> <context id="punctuator" style-ref="others"> <match>[&|;/]</match> </context> <context id="function" style-ref="function"> <!-- Function declaration with or without function keyword. For the later one, parentheses are mandatory --> <match extended="true"> \%{lb}(?: (function)\s+\%{command-name}\s*(\(\s*\))? | \%{command-name}\s*\(\s*\) ) </match> <include> <context sub-pattern="1" style-ref="keyword"/> </include> </context> <context id="redirection" style-ref="others"> <prefix></prefix> <suffix></suffix> <!-- The order of the two following keywords matters --> <keyword>[0-9]*[<>](&)?[0-9]*-?</keyword> <keyword>(&|[0-9]+)?>{1,2}[0-9]*-?</keyword> <keyword>[0-9]*(<>|>\|)</keyword> </context> <context id="highlighted-rest-of-line" once-only="true" end-at-line-end="true"> <start>(?<=.)(?=.)</start> <include> <context ref="sh"/> </include> </context> <context id="here-doc"> <include> <context id="unexpanded-here-doc"> <start extended="true" dupnames="true"> # (?<!<) for not matching here-word (<<<) (?<!<) <<-?\s* ( '(?P<HDB>[^']*)' # 'EOF' | "(?P<HDB>[^"]*)" # "EOF" )\%{rb} </start> <!-- "\t*" in case of "<<-" above --> <end>^\t*\%{HDB@start}(?=`|$)</end> <include> <context sub-pattern="0" where="start" style-ref="here-doc-bound"/> <context sub-pattern="0" where="end" style-ref="here-doc-bound"/> <!-- We can have cmd<<'EOF'; something to highlight --> <context ref="highlighted-rest-of-line"/> <context id="unexpanded-body-text" extend-parent="false"> <start>^</start> </context> </include> </context> <context id="expanded-here-doc"> <start extended="true"> (?<!<) <<-?\s* ( (?P<HDB>[^\s()`&|;<>"'\#]+) # EOF )\%{rb} </start> <end>^\t*\%{HDB@start}(?=`|$)</end> <include> <context sub-pattern="0" where="start" style-ref="here-doc-bound"/> <context sub-pattern="0" where="end" style-ref="here-doc-bound"/> <context ref="highlighted-rest-of-line"/> <context id="expanded-body-text" extend-parent="false"> <start>^</start> <include> <context style-ref="def:special-char"> <match>\\[$`\\]</match> </context> <context ref="def:line-continue"/> <context ref="backtick-subshell"/> <context ref="command-substitution"/> <context ref="arithmetic-expansion"/> <context ref="variable"/> </include> </context> </include> </context> </include> </context> <context id="test-operator" style-ref="function"> <prefix>(?<=\s|\(|^)</prefix> <suffix>\%{argument-suffix}</suffix> <keyword>-a</keyword> <keyword>-b</keyword> <keyword>-c</keyword> <keyword>-d</keyword> <keyword>-e</keyword> <keyword>-f</keyword> <keyword>-g</keyword> <keyword>-h</keyword> <keyword>-k</keyword> <keyword>-p</keyword> <keyword>-r</keyword> <keyword>-s</keyword> <keyword>-t</keyword> <keyword>-u</keyword> <keyword>-w</keyword> <keyword>-x</keyword> <keyword>-G</keyword> <keyword>-L</keyword> <keyword>-N</keyword> <keyword>-O</keyword> <keyword>-S</keyword> <keyword>-ef</keyword> <keyword>-nt</keyword> <keyword>-ot</keyword> <keyword>-o</keyword> <keyword>-v</keyword> <keyword>-R</keyword> <keyword>-z</keyword> <keyword>-n</keyword> <keyword>==</keyword> <keyword>=~</keyword> <keyword>=</keyword> <keyword>!=</keyword> <keyword>!</keyword> <keyword><</keyword> <keyword>></keyword> <keyword>-eq</keyword> <keyword>-ne</keyword> <keyword>-lt</keyword> <keyword>-le</keyword> <keyword>-gt</keyword> <keyword>-ge</keyword> </context> <context id="conditional-command"> <start>\%{lb}\[{1,2}\%{argument-suffix}</start> <end>\%{argument-prefix}\]{1,2}\%{rb}</end> <include> <context sub-pattern="0" where="start" style-ref="keyword"/> <context sub-pattern="0" where="end" style-ref="keyword"/> <context id="brackets-nesting"> <include> <!-- Must be included first, to ensure unescaped boundaries --> <context ref="def:escape"/> <context ref="def:line-continue"/> <context ref="single-quoted-string"/> <context ref="double-quoted-string"/> <context ref="backtick-subshell"/> <context ref="command-substitution"/> <context ref="arithmetic-expansion"/> <context ref="history-expansion"/> <context ref="variable"/> <context ref="test-operator"/> <context ref="logical-operator"/> </include> </context> <context id="brackets-precedence"> <start>\(</start> <end>\)</end> <include> <context sub-pattern="0" where="start" style-ref="function"/> <context sub-pattern="0" where="end" style-ref="function"/> <context ref="brackets-nesting"/> <context ref="brackets-precedence"/> </include> </context> </include> </context> <context id="short-parameter-expansion" style-ref="variable" class="no-spell-check"> <match>\$(\%{identifier}|\%{special-parameter})</match> </context> <context id="parameter-expansion" style-ref="def:statement" style-inside="true" class="no-spell-check"> <start>\$\{(?=[!#]?\%{identifier}|\%{special-parameter})</start> <end>\}</end> <include> <context sub-pattern="0" where="start" style-ref="variable"/> <context sub-pattern="0" where="end" style-ref="variable"/> <context id="parameter" once-only="true"> <start>(?<=\$\{)([!#]?)(\%{identifier}|\%{special-parameter})</start> <end>\%{def:always-match}</end> <include> <context sub-pattern="1" where="start" style-ref="keyword"/> <context sub-pattern="2" where="start" style-ref="variable"/> <context id="array-part" once-only="true"> <start>\[</start> <end>\]</end> <include> <context sub-pattern="0" where="start" style-ref="keyword"/> <context sub-pattern="0" where="end" style-ref="keyword"/> <context ref="expansion-nesting"/> <context ref="expansion-precedence"/> </include> </context> </include> </context> <!-- Must be included first, to ensure unescaped boundaries --> <context ref="def:escape"/> <context ref="def:line-continue"/> <context ref="single-quoted-string"/> <context ref="double-quoted-string"/> <context ref="variable"/> <context ref="backtick-subshell"/> <context ref="command-substitution"/> <context ref="arithmetic-expansion"/> <context ref="history-expansion"/> </include> </context> <context id="variable"> <include> <context ref="short-parameter-expansion"/> <context ref="parameter-expansion"/> </include> </context> <context id="stand-alone-variable-definition"> <start>\%{lb}\%{identifier}(?=(\[.*\])?\+?=)</start> <end>\+?=</end> <include> <context sub-pattern="0" where="start" style-ref="variable-definition"/> <context id="array-index" once-only="true"> <start>\[</start> <end>\](?=\+?=)</end> <include> <context sub-pattern="0" where="start" style-ref="keyword"/> <context sub-pattern="0" where="end" style-ref="keyword"/> <context ref="expansion-nesting"/> <context ref="expansion-precedence"/> </include> </context> </include> </context> <context id="variable-definition-command" end-at-line-end="true"> <start>\%{lb}(declare|local|typeset|readonly|export)\%{rb}</start> <end>\%{command-suffix}</end> <include> <context sub-pattern="0" where="start" style-ref="keyword"/> <!-- Must be included first, to ensure unescaped boundaries --> <context ref="def:escape"/> <context ref="def:line-continue"/> <context ref="line-comment"/> <context ref="single-quoted-string"/> <context ref="double-quoted-string"/> <context ref="redirection"/> <context ref="backtick-subshell"/> <context ref="command-substitution"/> <context ref="arithmetic-expansion"/> <!-- Must be included after all other parenthesized subshells --> <context ref="default-subshell"/> <context ref="history-expansion"/> <context ref="variable"/> <context style-ref="variable-definition"> <match>\%{argument-prefix}\%{identifier}</match> </context> </include> </context> <context id="variable-definition"> <include> <context ref="stand-alone-variable-definition"/> <context ref="variable-definition-command"/> </include> </context> <!-- To prevent conflicts, keywords below should be removed from the list before being used in any container context --> <context id="reserved-word" style-ref="keyword"> <prefix>\%{lb}</prefix> <suffix>\%{rb}</suffix> <keyword>\!</keyword> <keyword>\{</keyword> <keyword>\}</keyword> <keyword>\:</keyword> <keyword>do</keyword> <keyword>done</keyword> <keyword>elif</keyword> <keyword>else</keyword> <keyword>fi</keyword> <keyword>if</keyword> <keyword>in</keyword> <keyword>select</keyword> <keyword>then</keyword> <keyword>until</keyword> <keyword>while</keyword> </context> <context id="case-command"> <start>\%{lb}case\%{argument-suffix}</start> <include> <context sub-pattern="0" where="start" style-ref="keyword"/> <!-- Must be included before any reference context (replaces <end> tag, to enforce priority) --> <context style-ref="keyword" end-parent="true"> <prefix>\%{lb}</prefix> <suffix>\%{rb}</suffix> <keyword>esac</keyword> </context> <context ref="sh"/> </include> </context> <context id="for-command" end-at-line-end="true"> <start>\%{lb}for\%{argument-suffix}</start> <end>(?=\S)</end> <include> <context sub-pattern="0" where="start" style-ref="keyword"/> <context ref="def:line-continue"/> <context style-ref="variable-definition" once-only="true"> <match>\%{identifier}</match> </context> </include> </context> <context id="history-expansion-command" class="no-spell-check"> <start extended="true"> # Event Designator ((?<!\\)!) (?: (!|\#|-?[1-9][0-9]*) | (\?)[^?]+(\?|$) | [^=("\s:$^*%-][^"\s:$^*%-]* ) </start> <include> <context sub-pattern="1" where="start" style-ref="keyword"/> <context sub-pattern="2" where="start" style-ref="keyword"/> <context sub-pattern="3" where="start" style-ref="keyword"/> <context sub-pattern="4" where="start" style-ref="keyword"/> <context id="word-designator" once-only="true" style-ref="keyword"> <match extended="true"> (:|(?=[$^*%-])) ( (\^|[0-9]+)-(\$|[0-9]+) | (\^|[0-9]+)[*-] | [$^%*] | [0-9]+ | -(\$|[0-9]+) ) </match> </context> <context id="modifier" end-parent="true"> <start>\%{def:always-match}</start> <end>\%{def:always-match}</end> <include> <context id="simple-modifier" style-ref="keyword"> <match>:([htrepqx]|[agG]?&)</match> </context> <context id="substitution-modifier" end-at-line-end="true"> <start>:[agG]?s</start> <include> <context sub-pattern="0" where="start" style-ref="keyword"/> <context id="substitution-modifier-pattern" once-only="true"> <start>[[:print:]]</start> <end>((?=\%{0@start})|$)</end> <include> <context sub-pattern="0" where="start" style-ref="keyword"/> <context ref="def:escape"/> </include> </context> <context id="substitution-modifier-replacement" end-parent="true"> <start>[[:print:]]</start> <end>(\%{0@start}|$)</end> <include> <context sub-pattern="0" where="start" style-ref="keyword"/> <context sub-pattern="0" where="end" style-ref="keyword"/> <context ref="def:escape"/> </include> </context> </include> </context> </include> </context> </include> </context> <context id="history-expansion"> <include> <context ref="history-expansion-command"/> <context id="quick-substitution"> <match extended="true"> ^(\^) ([^^]|\\^)* (\^) ([^^]|\\^)* (\^|$)\%{rb} </match> <include> <context sub-pattern="1" style-ref="keyword"/> <context sub-pattern="3" style-ref="keyword"/> <context sub-pattern="5" style-ref="keyword"/> </include> </context> </include> </context> <context id="let-command" end-at-line-end="true"> <start>\%{lb}let\%{argument-suffix}</start> <end>\%{command-suffix}</end> <include> <context sub-pattern="0" where="start" style-ref="keyword"/> <!-- Must be included first (contains def:escape) --> <context ref="evaluation-nesting"/> <context ref="line-comment"/> <context ref="redirection"/> <context ref="evaluation-precedence"/> </include> </context> <context id="test-command" end-at-line-end="true"> <start>\%{lb}test\%{rb}</start> <end>\%{command-suffix}</end> <include> <context sub-pattern="0" where="start" style-ref="keyword"/> <!-- Must be included first, to ensure unescaped boundaries --> <context ref="def:escape"/> <context ref="line-comment"/> <context ref="redirection"/> <context ref="def:line-continue"/> <context ref="single-quoted-string"/> <context ref="double-quoted-string"/> <context ref="backtick-subshell"/> <context ref="command-substitution"/> <context ref="arithmetic-expansion"/> <context ref="history-expansion"/> <context ref="variable"/> <context ref="test-operator"/> </include> </context> <context id="built-in-command"> <include> <context ref="reserved-word"/> <context ref="case-command"/> <context ref="for-command"/> <context ref="history-expansion"/> <context ref="let-command"/> <context ref="conditional-command"/> <context ref="test-command"/> </include> </context> <context id="generic-command" end-at-line-end="true"> <start>\%{lb}(?=\%{command-name}\%{rb})</start> <!-- \%{command-suffix} + '(', to prevent false positives in ambiguous nesting of subshells and arithmetic evaluations/expansions, like (((a-(b+c)))) --> <end>\%{command-suffix}|(?=\()</end> <include> <!-- Must be included first --> <context once-only="true"> <start>\%{def:always-match}</start> <include> <context style-ref="keyword" end-parent="true"> <prefix></prefix> <suffix>\%{rb}</suffix> <keyword>\.</keyword> <keyword>alias</keyword> <keyword>bg</keyword> <keyword>bind</keyword> <keyword>break</keyword> <keyword>builtin</keyword> <keyword>caller</keyword> <keyword>cd</keyword> <keyword>command</keyword> <keyword>compgen</keyword> <keyword>complete</keyword> <keyword>compopt</keyword> <keyword>continue</keyword> <keyword>dirs</keyword> <keyword>disown</keyword> <keyword>echo</keyword> <keyword>enable</keyword> <keyword>eval</keyword> <keyword>exec</keyword> <keyword>exit</keyword> <keyword>false</keyword> <keyword>fc</keyword> <keyword>fg</keyword> <keyword>getopts</keyword> <keyword>hash</keyword> <keyword>help</keyword> <keyword>history</keyword> <keyword>jobs</keyword> <keyword>kill</keyword> <keyword>logout</keyword> <keyword>mapfile</keyword> <keyword>popd</keyword> <keyword>printf</keyword> <keyword>pushd</keyword> <keyword>pwd</keyword> <keyword>readarray</keyword> <keyword>read</keyword> <keyword>return</keyword> <keyword>set</keyword> <keyword>shift</keyword> <keyword>shopt</keyword> <keyword>source</keyword> <keyword>suspend</keyword> <keyword>times</keyword> <keyword>trap</keyword> <keyword>true</keyword> <keyword>type</keyword> <keyword>ulimit</keyword> <keyword>umask</keyword> <keyword>unalias</keyword> <keyword>unset</keyword> <keyword>wait</keyword> </context> <context style-ref="common-command" end-parent="true"> <prefix></prefix> <suffix>\%{rb}</suffix> <keyword>ar</keyword> <keyword>awk</keyword> <keyword>basename</keyword> <keyword>bash</keyword> <keyword>beep</keyword> <keyword>bunzip2</keyword> <keyword>bzcat</keyword> <keyword>bzcmp</keyword> <keyword>bzdiff</keyword> <keyword>bzegrep</keyword> <keyword>bzfgrep</keyword> <keyword>bzgrep</keyword> <keyword>bzip2recover</keyword> <keyword>bzip2</keyword> <keyword>bzless</keyword> <keyword>bzmore</keyword> <keyword>cc</keyword> <keyword>cat</keyword> <keyword>chattr</keyword> <keyword>chgrp</keyword> <keyword>chmod</keyword> <keyword>chown</keyword> <keyword>chroot</keyword> <keyword>clear</keyword> <keyword>cmp</keyword> <keyword>cpp</keyword> <keyword>cp</keyword> <keyword>cut</keyword> <keyword>date</keyword> <keyword>dd</keyword> <keyword>df</keyword> <keyword>dialog</keyword> <keyword>diff3</keyword> <keyword>diff</keyword> <keyword>dirname</keyword> <keyword>dir</keyword> <keyword>du</keyword> <keyword>egrep</keyword> <keyword>eject</keyword> <keyword>env</keyword> <keyword>expr</keyword> <keyword>fgrep</keyword> <keyword>file</keyword> <keyword>find</keyword> <keyword>fmt</keyword> <keyword>free</keyword> <keyword>ftp</keyword> <keyword>funzip</keyword> <keyword>fuser</keyword> <keyword>gawk</keyword> <keyword>gcc</keyword> <keyword>getent</keyword> <keyword>getopt</keyword> <keyword>grep</keyword> <keyword>groups</keyword> <keyword>gunzip</keyword> <keyword>gzip</keyword> <keyword>head</keyword> <keyword>hostname</keyword> <keyword>id</keyword> <keyword>ifconfig</keyword> <keyword>info</keyword> <keyword>insmod</keyword> <keyword>install</keyword> <keyword>join</keyword> <keyword>killall</keyword> <keyword>lastb</keyword> <keyword>last</keyword> <keyword>ld</keyword> <keyword>less</keyword> <keyword>ln</keyword> <keyword>locate</keyword> <keyword>lockfile</keyword> <keyword>login</keyword> <keyword>logname</keyword> <keyword>lp</keyword> <keyword>lpr</keyword> <keyword>lsattr</keyword> <keyword>ls</keyword> <keyword>lsmod</keyword> <keyword>make</keyword> <keyword>man</keyword> <keyword>mkdir</keyword> <keyword>mkfifo</keyword> <keyword>mknod</keyword> <keyword>mktemp</keyword> <keyword>modprobe</keyword> <keyword>more</keyword> <keyword>mount</keyword> <keyword>mv</keyword> <keyword>namei</keyword> <keyword>nawk</keyword> <keyword>nice</keyword> <keyword>nl</keyword> <keyword>passwd</keyword> <keyword>patch</keyword> <keyword>perl</keyword> <keyword>pgawk</keyword> <keyword>pidof</keyword> <keyword>ping</keyword> <keyword>pkg-config</keyword> <keyword>pr</keyword> <keyword>ps</keyword> <keyword>readlink</keyword> <keyword>renice</keyword> <keyword>rmdir</keyword> <keyword>rm</keyword> <keyword>scp</keyword> <keyword>sed</keyword> <keyword>seq</keyword> <keyword>sh</keyword> <keyword>sleep</keyword> <keyword>sort</keyword> <keyword>split</keyword> <keyword>ssh-add</keyword> <keyword>ssh-agent</keyword> <keyword>ssh-keygen</keyword> <keyword>ssh-keyscan</keyword> <keyword>ssh</keyword> <keyword>stat</keyword> <keyword>sudo</keyword> <keyword>sum</keyword> <keyword>su</keyword> <keyword>sync</keyword> <keyword>tac</keyword> <keyword>tail</keyword> <keyword>tar</keyword> <keyword>tee</keyword> <keyword>tempfile</keyword> <keyword>touch</keyword> <keyword>tr</keyword> <keyword>umount</keyword> <keyword>uname</keyword> <keyword>uniq</keyword> <keyword>unlink</keyword> <keyword>unzip</keyword> <keyword>uptime</keyword> <keyword>wall</keyword> <keyword>wc</keyword> <keyword>wget</keyword> <keyword>whereis</keyword> <keyword>which</keyword> <keyword>whoami</keyword> <keyword>who</keyword> <keyword>write</keyword> <keyword>w</keyword> <keyword>xargs</keyword> <keyword>xdialog</keyword> <keyword>zcat</keyword> <keyword>zcmp</keyword> <keyword>zdiff</keyword> <keyword>zegrep</keyword> <keyword>zenity</keyword> <keyword>zfgrep</keyword> <keyword>zforce</keyword> <keyword>zgrep</keyword> <keyword>zip</keyword> <keyword>zless</keyword> <keyword>zmore</keyword> <keyword>znew</keyword> </context> <!-- Must be included last --> <context end-parent="true"> <match>\%{command-name}</match> </context> </include> </context> <!-- Must be included first, to ensure unescaped boundaries --> <context ref="def:escape"/> <context ref="def:line-continue"/> <context ref="line-comment"/> <context ref="single-quoted-string"/> <context ref="double-quoted-string"/> <context ref="backtick-subshell"/> <context ref="command-substitution"/> <context ref="process-substitution"/> <context ref="arithmetic-expansion"/> <context ref="history-expansion"/> <context ref="here-doc"/> <context ref="redirection"/> <context ref="variable"/> </include> </context> <context id="sh" class="no-spell-check"> <include> <!-- Must be included first, to ensure unescaped boundaries --> <context ref="def:escape"/> <context ref="def:shebang"/> <context ref="line-comment"/> <context ref="def:line-continue"/> <context ref="single-quoted-string"/> <context ref="double-quoted-string"/> <context ref="backtick-subshell"/> <context ref="subshell"/> <context ref="command-substitution"/> <context ref="process-substitution"/> <context ref="arithmetic-evaluation"/> <context ref="arithmetic-expansion"/> <!-- Must be included after all other parenthesized subshells --> <context ref="default-subshell"/> <context ref="punctuator"/> <context ref="function"/> <context ref="here-doc"/> <context ref="redirection"/> <context ref="variable"/> <context ref="variable-definition"/> <context ref="built-in-command"/> <!-- Must be included last --> <context ref="generic-command"/> </include> </context> </definitions> </language>
Close