]> git.ipfire.org Git - thirdparty/bash.git/blobdiff - tests/dollar-at5.sub
Bash-4.3 distribution sources and documentation
[thirdparty/bash.git] / tests / dollar-at5.sub
diff --git a/tests/dollar-at5.sub b/tests/dollar-at5.sub
new file mode 100644 (file)
index 0000000..75e2249
--- /dev/null
@@ -0,0 +1,82 @@
+args() { printf '<%s> ' "$@"; echo; }
+
+set -- 1 2 3 4 5
+
+args "${@} ${1}"
+args "${1} ${@}"
+args "${1}${@}${1}"
+args "${1} ${@} ${1}"
+args ${1}"$@"${1}
+args "$@"${1}
+args ${1}"$@"
+
+args "$@""${1}"
+args "${1}""$@"
+
+args "${@}foo"
+args ${@}${1}
+args ${@}foo
+
+IFS=
+args "$@""${1}"
+args "${1}""$@"
+
+args ${@}${1}
+args ${1}${@}
+args ${@}foo
+
+echo second set:
+IFS=$' \t\n'
+set -- '1 2' 3 4 5
+
+args "${@} ${1}"
+args "${1} ${@}"
+
+args "${1}${@}${1}"
+args "${1} ${@} ${1}"
+args ${1}"$@"${1}
+args "$@"${1}
+args ${1}"$@"
+
+args "$@""${1}"
+args "${1}""$@"
+
+args "${@}foo"
+args ${@}${1}
+args ${@}foo
+
+IFS=
+
+args "$@""${1}"
+args "${1}""$@"
+
+args ${@}${1}
+args ${1}${@}
+args ${@}foo
+
+echo third set:
+IFS=$' \t\n'
+
+alias declare=typeset
+
+a(){ echo
+     echo '"${@:2}a3 a2" a$1    #works as long as $1 and 3 are swapped'
+     echo  "${@:2}a3 a2" a$1
+           "${@:2}a3 a2" a$1
+     echo   $?
+        a=("${@}");}
+b(){ echo
+     echo '"${@:2}b$1 b2" b3    #fails!  why?'
+     echo  "${@:2}b$1 b2" b3
+           "${@:2}b$1 b2" b3
+     echo   $?
+        b=("${@}");}
+c(){ echo
+     echo  '${@:2}c$1 c2 c3     #works as long as quoting omitted'
+     echo   ${@:2}c$1 c2 c3
+            ${@:2}c$1 c2 c3
+     echo   $?
+        c=("${@}");}
+a x set y z;declare -p a
+b x set y z;declare -p b
+c x set y z;declare -p c