]> git.ipfire.org Git - thirdparty/bash.git/blobdiff - tests/varenv9.sub
bash-5.0 distribution sources and documentation
[thirdparty/bash.git] / tests / varenv9.sub
diff --git a/tests/varenv9.sub b/tests/varenv9.sub
new file mode 100644 (file)
index 0000000..eda1be3
--- /dev/null
@@ -0,0 +1,66 @@
+# case 1: readonly modifying local scalar variables
+o1() {
+    local i1 j1
+    readonly i1=$1
+    readonly j1="1 2 3"
+
+    echo "in o1 (readonly modifying local scalars):"
+    declare -p i1
+    declare -p j1
+}
+
+o1 "a b c"
+
+echo after o1:
+declare -p i1 j1
+
+unset i1 j1
+
+# case 2: readonly setting global scalar variables
+o2() {
+    readonly i2=$1
+    readonly j2="1 2 3"
+
+    echo "in o2 (readonly setting global scalars):"
+    declare -p i2
+    declare -p j2
+}
+
+o2 "a b c"
+echo after o2:
+declare -p i2 j2
+
+unset i2 j2
+
+# case 3: readonly modifying local variables, converting to arrays
+o3() {
+    local i3 j3
+    readonly i3=($1)
+    readonly j3=(1 2 3)
+
+    echo "in o3 (readonly modifying locals, converting to arrays):"
+    declare -p i3
+    declare -p j3
+}
+
+o3 "a b c"
+echo after o3:
+declare -p i3 j3
+
+unset i3 j3
+
+# case 4: readonly setting global array variables
+o4() {
+    readonly i4=($1)
+    readonly j4=(1 2 3)
+
+    echo "in o4 (readonly setting global array variables):"
+    declare -p i4
+    declare -p j4
+}
+
+o4 "a b c"
+echo after o4:
+declare -p i4 j4
+
+unset i4 j4