aa bb cc dd AAaa bb cc ddBB aa bb cc dd aa bb cc dd DDDDDaa bb cc ddEEEEE aa bb cc dd outside: 42 aa bb cc dd outside: assignment: 12 func () { echo func-inside } abcde 67890 12345 argv[1] = <> argv[1] = <> aa,bb JOBaa bb cc ddCONTROL ./comsub2.tests: line 68: p: command not found NOTFOUND ./comsub2.tests: line 75: p: command not found ./comsub2.tests: line 75: p: command not found expand_aliases off expand_aliases off outside: ./comsub2.tests: line 79: alias: p: not found alias e='echo inside redefine' expand_aliases off 1 expand_aliases on 2 expand_aliases on outside: ./comsub2.tests: line 89: alias: p: not found expand_aliases on 1 xx expand_aliases on 2 xx expand_aliases on outside: expand_aliases on inside: 12 22 42 outside: 42 2 newlines outside: 42 before: 1 2 after: 2 before: 1 2 after: 2 before: 1 2 after: 1 2 XnestedY a nested b one two 42 42 42 123 123 0 123 123 0 Mon Aug 29 20:03:02 EDT 2022 Mon Aug 29 20:03:02 EDT 2022 Mon Aug 29 20:03:02 EDT 2022 Mon Aug 29 20:03:02 EDT 2022 123 before 123 in for 123 outside before: value inside before: value inside after: funsub inside: after false xxx outside after: funsub =====posix mode===== outside before: value . declare -a a=([0]="1" [1]="2" [2]="3" [3]="4") declare -- int="2" after here-doc: 1 [1]- Running sleep 1 & [2]+ Running sleep 1 & [1]- Running sleep 1 & [2]+ Running sleep 1 & 17772 26794 17772 26794 we should try rhs comsub and funsub in here-documents after all they work here and work here a b c == 1 2 3 == 1 2 3 before return after func 1 2 3a b c 2 2 foobara b c declare -- IFS=" " *??? *??? yyy zzzz argv[1] = argv[1] = argv[1] = argv[1] = <^A> argv[1] = <^A> argv[1] = <^A> argv[1] = <^A> argv[1] = <^A> argv[1] = <^A> argv[1] = <^?> argv[1] = <^?> argv[1] = <^?> argv[1] = <^?> argv[1] = <^?> argv[1] = <^?> argv[1] = argv[1] = argv[1] = argv[1] = argv[1] = argv[1] = argv[1] = <^A> argv[1] = <^A> argv[1] = <^A> argv[1] = <^A> argv[1] = <^A> argv[1] = <^A> argv[1] = <^A> argv[1] = <^A> argv[1] = <^A> argv[1] = <^A> argv[1] = <^?> argv[1] = <^?> argv[1] = <^?> argv[1] = <^?> argv[1] = <^?> argv[1] = <^?> argv[1] = <^?> argv[1] = <^?> argv[1] = <^?> argv[1] = <^?> argv[1] = argv[1] = argv[2] = argv[1] = argv[1] = argv[2] = argv[1] = argv[1] = argv[2] = argv[1] = argv[1] = argv[2] = argv[1] = argv[1] = argv[2] = argv[1] = argv[1] = argv[1] = argv[1] = argv[2] = argv[1] = argv[1] = inside1-inside2-outside BEFOREAA BB CC AFTER BEFOREAA BB CC AFTER unbalanced braces}} combined comsubs combined comsubs inside after: var = inside after: 42 var = inside var=inside 42 after: 0 var = inside