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