1*fead3ac9SBram Moolenaar" When you're writing shell scripts and you are in doubt which test to use,
2*fead3ac9SBram Moolenaar" which shell environment variables are defined, what the syntax of the case
3*fead3ac9SBram Moolenaar" statement is, and you need to invoke 'man sh'?
4*fead3ac9SBram Moolenaar"
5*fead3ac9SBram Moolenaar" Your problems are over now!
6*fead3ac9SBram Moolenaar"
7*fead3ac9SBram Moolenaar" Attached is a Vim script file for turning gvim into a shell script editor.
8*fead3ac9SBram Moolenaar" It may also be used as an example how to use menus in Vim.
9*fead3ac9SBram Moolenaar"
10*fead3ac9SBram Moolenaar" Written by: Lennart Schultz <[email protected]>
11*fead3ac9SBram Moolenaar
12*fead3ac9SBram Moolenaarimenu Stmts.for	for  in
13*fead3ac9SBram Moolenaardo
14*fead3ac9SBram Moolenaar
15*fead3ac9SBram Moolenaardoneki	kk0elli
16*fead3ac9SBram Moolenaarimenu Stmts.case	case  in
17*fead3ac9SBram Moolenaar) ;;
18*fead3ac9SBram Moolenaaresacbki	k0elli
19*fead3ac9SBram Moolenaarimenu Stmts.if	if
20*fead3ac9SBram Moolenaarthen
21*fead3ac9SBram Moolenaar
22*fead3ac9SBram Moolenaarfiki	kk0elli
23*fead3ac9SBram Moolenaarimenu Stmts.if-else	if
24*fead3ac9SBram Moolenaarthen
25*fead3ac9SBram Moolenaar
26*fead3ac9SBram Moolenaarelse
27*fead3ac9SBram Moolenaar
28*fead3ac9SBram Moolenaarfiki	kki	kk0elli
29*fead3ac9SBram Moolenaarimenu Stmts.elif	elif
30*fead3ac9SBram Moolenaarthen
31*fead3ac9SBram Moolenaar
32*fead3ac9SBram Moolenaarki	kk0elli
33*fead3ac9SBram Moolenaarimenu Stmts.while	while
34*fead3ac9SBram Moolenaardo
35*fead3ac9SBram Moolenaar
36*fead3ac9SBram Moolenaardoneki	kk0elli
37*fead3ac9SBram Moolenaarimenu Stmts.break	break
38*fead3ac9SBram Moolenaarimenu Stmts.continue	continue
39*fead3ac9SBram Moolenaarimenu Stmts.function	() {
40*fead3ac9SBram Moolenaar
41*fead3ac9SBram Moolenaar}ki	k0i
42*fead3ac9SBram Moolenaarimenu Stmts.return	return
43*fead3ac9SBram Moolenaarimenu Stmts.return-true	return 0
44*fead3ac9SBram Moolenaarimenu Stmts.return-false	return 1
45*fead3ac9SBram Moolenaarimenu Stmts.exit	exit
46*fead3ac9SBram Moolenaarimenu Stmts.shift	shift
47*fead3ac9SBram Moolenaarimenu Stmts.trap	trap
48*fead3ac9SBram Moolenaarimenu Test.existence	[ -e  ]hi
49*fead3ac9SBram Moolenaarimenu Test.existence - file		[ -f  ]hi
50*fead3ac9SBram Moolenaarimenu Test.existence - file (not empty)	[ -s  ]hi
51*fead3ac9SBram Moolenaarimenu Test.existence - directory	[ -d  ]hi
52*fead3ac9SBram Moolenaarimenu Test.existence - executable	[ -x  ]hi
53*fead3ac9SBram Moolenaarimenu Test.existence - readable	[ -r  ]hi
54*fead3ac9SBram Moolenaarimenu Test.existence - writable	[ -w  ]hi
55*fead3ac9SBram Moolenaarimenu Test.String is empty [ x = "x$" ]hhi
56*fead3ac9SBram Moolenaarimenu Test.String is not empty [ x != "x$" ]hhi
57*fead3ac9SBram Moolenaarimenu Test.Strings is equal [ "" = "" ]hhhhhhhi
58*fead3ac9SBram Moolenaarimenu Test.Strings is not equal [ "" != "" ]hhhhhhhhi
59*fead3ac9SBram Moolenaarimenu Test.Values is greater than [  -gt  ]hhhhhhi
60*fead3ac9SBram Moolenaarimenu Test.Values is greater equal [  -ge  ]hhhhhhi
61*fead3ac9SBram Moolenaarimenu Test.Values is equal [  -eq  ]hhhhhhi
62*fead3ac9SBram Moolenaarimenu Test.Values is not equal [  -ne  ]hhhhhhi
63*fead3ac9SBram Moolenaarimenu Test.Values is less than [  -lt  ]hhhhhhi
64*fead3ac9SBram Moolenaarimenu Test.Values is less equal [  -le  ]hhhhhhi
65*fead3ac9SBram Moolenaarimenu ParmSub.Substitute word if parm not set ${:-}hhi
66*fead3ac9SBram Moolenaarimenu ParmSub.Set parm to word if not set ${:=}hhi
67*fead3ac9SBram Moolenaarimenu ParmSub.Substitute word if parm set else nothing ${:+}hhi
68*fead3ac9SBram Moolenaarimenu ParmSub.If parm not set print word and exit ${:?}hhi
69*fead3ac9SBram Moolenaarimenu SpShVars.Number of positional parameters ${#}
70*fead3ac9SBram Moolenaarimenu SpShVars.All positional parameters (quoted spaces) ${*}
71*fead3ac9SBram Moolenaarimenu SpShVars.All positional parameters (unquoted spaces) ${@}
72*fead3ac9SBram Moolenaarimenu SpShVars.Flags set ${-}
73*fead3ac9SBram Moolenaarimenu SpShVars.Return code of last command ${?}
74*fead3ac9SBram Moolenaarimenu SpShVars.Process number of this shell ${$}
75*fead3ac9SBram Moolenaarimenu SpShVars.Process number of last background command ${!}
76*fead3ac9SBram Moolenaarimenu Environ.HOME ${HOME}
77*fead3ac9SBram Moolenaarimenu Environ.PATH ${PATH}
78*fead3ac9SBram Moolenaarimenu Environ.CDPATH ${CDPATH}
79*fead3ac9SBram Moolenaarimenu Environ.MAIL ${MAIL}
80*fead3ac9SBram Moolenaarimenu Environ.MAILCHECK ${MAILCHECK}
81*fead3ac9SBram Moolenaarimenu Environ.PS1 ${PS1}
82*fead3ac9SBram Moolenaarimenu Environ.PS2 ${PS2}
83*fead3ac9SBram Moolenaarimenu Environ.IFS ${IFS}
84*fead3ac9SBram Moolenaarimenu Environ.SHACCT ${SHACCT}
85*fead3ac9SBram Moolenaarimenu Environ.SHELL ${SHELL}
86*fead3ac9SBram Moolenaarimenu Environ.LC_CTYPE ${LC_CTYPE}
87*fead3ac9SBram Moolenaarimenu Environ.LC_MESSAGES ${LC_MESSAGES}
88*fead3ac9SBram Moolenaarimenu Builtins.cd cd
89*fead3ac9SBram Moolenaarimenu Builtins.echo echo
90*fead3ac9SBram Moolenaarimenu Builtins.eval eval
91*fead3ac9SBram Moolenaarimenu Builtins.exec exec
92*fead3ac9SBram Moolenaarimenu Builtins.export export
93*fead3ac9SBram Moolenaarimenu Builtins.getopts getopts
94*fead3ac9SBram Moolenaarimenu Builtins.hash hash
95imenu Builtins.newgrp newgrp
96imenu Builtins.pwd pwd
97imenu Builtins.read read
98imenu Builtins.readonly readonly
99imenu Builtins.return return
100imenu Builtins.times times
101imenu Builtins.type type
102imenu Builtins.umask umask
103imenu Builtins.wait wait
104imenu Set.set set
105imenu Set.unset unset
106imenu Set.mark modified or modified variables set -a
107imenu Set.exit when command returns non-zero exit code set -e
108imenu Set.Disable file name generation set -f
109imenu Set.remember function commands set -h
110imenu Set.All keyword arguments are placed in the environment set -k
111imenu Set.Read commands but do not execute them set -n
112imenu Set.Exit after reading and executing one command set -t
113imenu Set.Treat unset variables as an error when substituting set -u
114imenu Set.Print shell input lines as they are read set -v
115imenu Set.Print commands and their arguments as they are executed set -x
116