diff options
Diffstat (limited to 'runtime/syntax/testdir/input/sh_07.sh')
-rw-r--r-- | runtime/syntax/testdir/input/sh_07.sh | 93 |
1 files changed, 93 insertions, 0 deletions
diff --git a/runtime/syntax/testdir/input/sh_07.sh b/runtime/syntax/testdir/input/sh_07.sh new file mode 100644 index 0000000..23219a0 --- /dev/null +++ b/runtime/syntax/testdir/input/sh_07.sh @@ -0,0 +1,93 @@ +#!/bin/dash +# Test file to test 'for do done' loops. +# You can start this script like: $0 {-ne -gt -le ...} (all numeric operators +# are allowed! + +# All this works and should be OK + +################################################################################ +# +# For loop without 'in list'. Uses $1 $2 ... This is a special case! +# This 'for Var, do, done' is a very handy solution AND no real replacement +# available! +# +Function1 () { + +echo "Function1: for loop inside a function:\t\c" +[ "$*" ] || echo "none\c" + +for Var +do + [ 1 $Var 2 ] && echo "OK \c" || echo "no \c" +done +echo + +} # End of Function1 + +################################################################################ +# +# For loop with 'in list' $* +# +Function2 () { + +echo "Function2: for loop inside a function:\t\c" +for Var in $* +do + [ 1 $Var 2 ] && echo "OK \c" || echo "no \c" +done ; echo + +} # End of Function2 + +################################################################################ +# +# For loop with 'in list' $@. Works the same way as $* +# +Function3 () { + +echo "Function3: for loop inside a function:\t\c" +for Var in $@ +do + [ 1 $Var 2 ] && echo "OK \c" || echo "no \c" +done ; echo + +} # End of Function3 + +################################################################################ +# +# For loop with 'in list' "$@". Special case. Works like "$1" "$2" ... +# +Function4 () { + +echo "Function4: for loop inside a function:\t\c" +for Var in "$@" +do + [ 1 $Var 2 ] && echo "OK \c" || echo "no \c" +done ; echo + +} # End of Function4 + + +################################################################################ +# main ### main ### main ### main ### main ### main ### main ### main ### main # +################################################################################ +# +# Here is the heart of this script: +# +echo "Processing the following command line arguments: ${*:-none}" +echo "Script: for loop outside a function:\t\c" +for Var +do + [ 1 $Var 2 ] && echo "OK \c" || echo "no \c" +done ; echo + +# Same as function calls +Function1 -eq -ne -gt -ge -le -lt +Function2 -eq -ne -gt -ge -le -lt +Function3 -eq -ne -gt -ge -le -lt +Function4 -eq -ne -gt -ge -le -lt '-ge 1 -a 2 -ge' + +# Now the same call like Function4 but with Function1 +Function1 -eq -ne -gt -ge -le -lt '-ge 1 -a 2 -ge' +Function1 + +exit $? |