rewrote arglist to argv conversion and added $@, $* support

This commit is contained in:
BVK Chaitanya 2010-05-12 10:19:12 +05:30
parent 01b0317f7b
commit a0167e8bdf
8 changed files with 392 additions and 213 deletions

View file

@ -18,7 +18,7 @@
echo parameter count
function fcount {
echo "$#"
echo fcount "$#"
}
fcount
@ -27,7 +27,7 @@ fcount a b
echo parameter count, with nesting
function ffcount {
echo "$#"
echo ffcount "$#"
fcount
fcount a
fcount a b
@ -39,9 +39,9 @@ ffcount 1 2
echo parameters
function fparam {
echo 1 $1
echo 2 $2
echo 3 $3
echo fparam 1 $1
echo fparam 2 $2
echo fparam 3 $3
}
fparam
@ -50,9 +50,9 @@ fparam a b
echo parameters, with nesting
function ffparam {
echo 1 $1
echo 2 $2
echo 3 $3
echo ffparam 1 $1
echo ffparam 2 $2
echo ffparam 3 $3
fparam
fparam a
fparam a b
@ -61,3 +61,57 @@ function ffparam {
ffparam
ffparam 1
ffparam 1 2
echo parameter expansion with specials
function fstar {
for f in $*
do
echo fstar $f
done
}
fstar
fstar a
fstar a "1 2"
fstar a "1 2" b
function fdqstar {
for f in "$*"
do
echo fdqstar $f
done
}
fdqstar
fdqstar a
fdqstar a "1 2"
fdqstar a "1 2" b
function fat {
for f in $@
do
echo fat $f
done
}
fat
fat a
fat a "1 2"
fat a "1 2" b
fat a "1 2" b "c d"
fat a "1 2" b "c d" e
function fdqat {
for f in "$@"
do
echo fdqat $f
done
}
# fdqat # this case needs special handling, lets ignore till we really need it.
fdqat a
fdqat a "1 2"
fdqat a "1 2" b
fdqat a "1 2" b "c d"
fdqat a "1 2" b "c d" e