blob: 23219a0cdb02185538d21bc3e232d1522f36e714 [file] [log] [blame]
Bram Moolenaar7d0dbd02023-06-24 00:56:50 +01001#!/bin/dash
Bram Moolenaar1aa5f1c2023-06-22 21:57:51 +01002# Test file to test 'for do done' loops.
3# You can start this script like: $0 {-ne -gt -le ...} (all numeric operators
4# are allowed!
5
6# All this works and should be OK
7
8################################################################################
9#
10# For loop without 'in list'. Uses $1 $2 ... This is a special case!
11# This 'for Var, do, done' is a very handy solution AND no real replacement
12# available!
13#
14Function1 () {
15
16echo "Function1: for loop inside a function:\t\c"
17[ "$*" ] || echo "none\c"
18
19for Var
20do
21 [ 1 $Var 2 ] && echo "OK \c" || echo "no \c"
22done
23echo
24
25} # End of Function1
26
27################################################################################
28#
29# For loop with 'in list' $*
30#
31Function2 () {
32
33echo "Function2: for loop inside a function:\t\c"
34for Var in $*
35do
36 [ 1 $Var 2 ] && echo "OK \c" || echo "no \c"
37done ; echo
38
39} # End of Function2
40
41################################################################################
42#
43# For loop with 'in list' $@. Works the same way as $*
44#
45Function3 () {
46
47echo "Function3: for loop inside a function:\t\c"
48for Var in $@
49do
50 [ 1 $Var 2 ] && echo "OK \c" || echo "no \c"
51done ; echo
52
53} # End of Function3
54
55################################################################################
56#
57# For loop with 'in list' "$@". Special case. Works like "$1" "$2" ...
58#
59Function4 () {
60
61echo "Function4: for loop inside a function:\t\c"
62for Var in "$@"
63do
64 [ 1 $Var 2 ] && echo "OK \c" || echo "no \c"
65done ; echo
66
67} # End of Function4
68
69
70################################################################################
71# main ### main ### main ### main ### main ### main ### main ### main ### main #
72################################################################################
73#
74# Here is the heart of this script:
75#
THARAK HEGDE4c0089d2023-07-09 02:38:28 +010076echo "Processing the following command line arguments: ${*:-none}"
Bram Moolenaar1aa5f1c2023-06-22 21:57:51 +010077echo "Script: for loop outside a function:\t\c"
78for Var
79do
80 [ 1 $Var 2 ] && echo "OK \c" || echo "no \c"
81done ; echo
82
83# Same as function calls
84Function1 -eq -ne -gt -ge -le -lt
85Function2 -eq -ne -gt -ge -le -lt
86Function3 -eq -ne -gt -ge -le -lt
87Function4 -eq -ne -gt -ge -le -lt '-ge 1 -a 2 -ge'
88
89# Now the same call like Function4 but with Function1
90Function1 -eq -ne -gt -ge -le -lt '-ge 1 -a 2 -ge'
91Function1
92
93exit $?