]> TLD Linux GIT Repositories - rc-scripts.git/blobdiff - t/inherit.sh
- merged changes from PLD, all TLD changes and fixes are kept
[rc-scripts.git] / t / inherit.sh
diff --git a/t/inherit.sh b/t/inherit.sh
new file mode 100755 (executable)
index 0000000..c362635
--- /dev/null
@@ -0,0 +1,34 @@
+#!/bin/sh
+# test that variables local to function are inherited when another function is called out
+#
+# the whole program should output:
+#---
+#sub: var='var'
+#sub: subvar='subvar'
+#main: var='var'
+#main: subvar='subvar'
+#subshelled: sub: var='var' sub: subvar='subvar'
+#outer: var=''
+#outer: subvar=''
+#---
+
+sub() {
+       subvar=subvar
+       echo "sub: var='$var'"
+       echo "sub: subvar='$subvar'"
+}
+
+main() {
+       local var=var
+       local subvar
+
+       sub
+       echo "main: var='$var'"
+       echo "main: subvar='$subvar'"
+
+       echo "subshelled:" $(sub)
+}
+
+main
+echo "outer: var='$var'"
+echo "outer: subvar='$subvar'"