one two three declare -n fee="flip" declare -n foo="bar" turning off nameref attribute on foo bar after +n foo bar = other one two one expect argv[1] = expect argv[1] = expect one expect one expect argv[1] = changevar: expect argv[1] = expect argv[1] = changevar: expect argv[1] = expect argv[1] = ./nameref.tests: line 93: bar: readonly variable ./nameref.tests: line 94: foo: readonly variable one one ./nameref.tests: line 106: foo: readonly variable ./nameref.tests: line 103: foo: readonly variable one abxde abxde one bar ./nameref2.sub: line 5: foo: readonly variable expect argv[1] = expect argv[1] = expect argv[1] = expect argv[1] = ./nameref3.sub: line 21: unset: bar: cannot unset: readonly variable expect two expect two three unset four 0 expect a b expect foo 1 3 5 7 9 9 1 3 42 7 9 1 3 42 7 9 9 1 3 44 7 9 unset expect argv[1] = expect argv[1] = argv[2] = argv[3] = argv[4] = argv[5] = 16 expect <4> 4 expect <4> 4 expect <4> 4 expect one expect one expect one expect four errors = 0 1 2 v1: 1 v2: 2 ref -> first, value: I am first ref -> second, value: I am in the middle ref -> third, value: I am last final state: ref -> third, value: I am last ref -> one, value: 1 ref -> two, value: 2 ref -> three, value: 3 final state: ref -> three, value: 3 ./nameref5.sub: line 43: unset: three: cannot unset: readonly variable ref -> one, value: 1 ref -> two, value: 2 ref -> three, value: 3 final state: ref -> three, value: 3 ./nameref6.sub: line 2: typeset: x: nameref variable self references not allowed ./nameref6.sub: line 12: typeset: x: reference variable cannot be an array the -- 1 42 -- 0 y -- 0 2 -- 0 2 -- 0 y -- 0 bar unset inside inside: two outside: foo local ./nameref8.sub: line 47: typeset: v: nameref variable self references not allowed ./nameref8.sub: line 54: warning: x: circular name reference ./nameref8.sub: line 55: warning: x: circular name reference x = idx2 idX2 idx2 idX2 declare -n foo="x[\$zero]" 42 declare -a x=([0]="4") declare -n foo="x[\$(echo 0)]" 4 comsub x[i=0] comsub 4 comsub 4 comsub 4 declare -n foo="somevariable" ./nameref10.sub: line 38: typeset: somevariable: not found foo = declare -n foo="somevariable" declare -A somevariable=([jug]="brown" ) declare -n foo="somevariable" declare -A somevariable=([jug]="brown" ) declare -n foo="somevariable" ./nameref10.sub: line 49: typeset: somevariable: not found ./nameref10.sub: line 51: typeset: foo: not found ./nameref10.sub: line 51: typeset: somevariable: not found declare -n foo="bar" ./nameref10.sub: line 55: typeset: bar: not found declare -n foo="bar" ./nameref10.sub: line 57: typeset: bar: not found declare -n foo="bar" declare -i bar="8" 8 declare -n foo="bar" ./nameref10.sub: line 64: typeset: bar: not found ./nameref11.sub: line 1: declare: `/': invalid variable name for name reference ./nameref11.sub: line 2: declare: `/': invalid variable name for name reference ./nameref11.sub: line 3: `/': not a valid identifier ./nameref11.sub: line 4: declare: `/': not a valid identifier ./nameref11.sub: line 5: `/': not a valid identifier 1) / #? ./nameref11.sub: line 6: `/': not a valid identifier x ./nameref11.sub: line 7: ((: `0': not a valid identifier ./nameref11.sub: line 8: declare: `0': invalid variable name for name reference ./nameref11.sub: line 9: declare: `/': invalid variable name for name reference ./nameref11.sub: line 10: declare: `/': invalid variable name for name reference / ./nameref11.sub: line 12: `/': not a valid identifier ./nameref11.sub: line 13: exec: `10': not a valid identifier ./nameref11.sub: line 13: r: cannot assign fd to variable ./nameref11.sub: line 14: warning: r: removing nameref attribute 63 ./nameref11.sub: line 15: declare: RO: readonly variable ./nameref11.sub: line 15: RO: readonly variable ./nameref11.sub: line 16: declare: `/': invalid variable name for name reference / ./nameref11.sub: line 17: declare: `/': invalid variable name for name reference ./nameref11.sub: illegal option -- h ./nameref11.sub: line 18: getopts: `?': not a valid identifier ./nameref11.sub: line 19: warning: r: removing nameref attribute declare -a r=() ./nameref11.sub: line 20: declare: r: reference variable cannot be an array ./nameref11.sub: line 21: printf: `/': not a valid identifier ./nameref11.sub: line 23: `': not a valid identifier ./nameref11.sub: line 24: declare: `': not a valid identifier ./nameref11.sub: line 25: `': not a valid identifier ./nameref11.sub: line 26: printf: `': not a valid identifier ./nameref11.sub: line 27: declare: `': invalid variable name for name reference declare -r ROVAR="42" ./nameref11.sub: line 32: ROVAR: readonly variable ./nameref11.sub: line 32: ROVAR: cannot unset: readonly variable declare -r ROVAR="42" ./nameref11.sub ./nameref11.sub: line 34: `@': not a valid identifier ./nameref11.sub declare -n ref="x" ./nameref11.sub: line 39: RO: readonly variable declare -r RO_PID ./nameref11.sub: line 39: RO: cannot unset: readonly variable declare -r RO="x" ./nameref11.sub: line 39: declare: RO_PID: not found ./nameref11.sub: line 41: ref_PID: readonly variable declare -r RO2="a" ./nameref12.sub: line 6: declare: `/': invalid variable name for name reference ./nameref12.sub: line 9: declare: `%': invalid variable name for name reference ./nameref12.sub: line 13: `^': not a valid identifier declare -n r declare -a foo declare -a foo=([0]="7") ./nameref12.sub: line 26: declare: `42': not a valid identifier ./nameref12.sub: line 27: declare: x: not found declare -nr RO="foo" 0 0 / ./nameref12.sub: line 45: declare: `7*6': not a valid identifier ./nameref12.sub: line 45: declare: foo: not found ./nameref12.sub: line 47: `7*6': not a valid identifier declare -n ref="var" declare -n ref="var" ./nameref12.sub: line 74: readonly: `var[0]': not a valid identifier declare -- var="foo" declare -r var2="foo" declare -n ref="var" declare -a var=([0]="foo") ./nameref12.sub: line 91: `': not a valid identifier declare -n ref declare -- ref="global" declare -a var=([0]="foo2") ./nameref12.sub: line 100: declare: global: not found declare -- a declare -n r="a" declare -- a declare -n r="a" 0 declare -n r="P" declare -n ref="var" declare -- a declare -n r="a" 0 declare -n r declare -n r ./nameref13.sub: line 88: typeset: `12345': invalid variable name for name reference declare -n foo ./nameref13.sub: line 97: typeset: `12345': invalid variable name for name reference declare -n foo declare -nx ref="var" var var var var foo foo foo foo before declare -n ref="var" ./nameref14.sub: line 23: typeset: var: not found first declare -n ref="var" declare -x var="xxx" invalid declare -n ref="var" declare -x var="5" after declare -n ref="var" ./nameref14.sub: line 32: typeset: var: not found declare -n ref="var"