93 lines
2.3 KiB
Bash
93 lines
2.3 KiB
Bash
#!/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 $?
|