(List (Com {[LIT_CHARS set]} {[LIT_CHARS -e]} ) (= scope= flags=0 words=[] bindings=[('ROOT', {[DQ [ComSub (AndOr OP_AND_IF (Com {[LIT_CHARS cd]} {[DQ [ComSub (Com {[LIT_CHARS dirname]} {[DQ [VarSub BASH_SOURCE bracket_op=(Index {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 0]}})]]})]]}) (AndOr OP_AND_IF (Com {[LIT_CHARS cd]} {[LIT_CHARS ..]}) (Com {[LIT_CHARS pwd]}) ) )]]})]) (If (Com {[LIT_DBRACKET_LIKE "["]} {[VarSub #]} {[LIT_CHARS -eq]} {[LIT_CHARS 0]} {[LIT_DBRACKET_LIKE "]"]} ) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "No test config name supplied, using "][\ LIT_ESCAPED_CHAR "\\\""][LIT_CHARS testapps][\ LIT_ESCAPED_CHAR "\\\""]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (= scope= flags=0 words=[] bindings=[('TEST', {[DQ [LIT_CHARS testapps]]})]) ) (ElseTrue) (List (= scope= flags=0 words=[] bindings=[('TEST', {[DQ [VarSub 1]]})]) (Com {[LIT_CHARS shift]} ) ) ) (= scope= flags=0 words=[] bindings=[('CONFIG_IN', {[DQ [VarSub ROOT][LIT_CHARS /test/configs/][VarSub TEST][LIT_CHARS .config.in]]})]) (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[LIT_CHARS /tmp/shiny-server-test]} ) (= scope= flags=0 words=[] bindings=[('CONFIG_OUT', {[DQ [LIT_CHARS /tmp/shiny-server-test/][VarSub TEST][LIT_CHARS .config]]})]) (Subshell (Pipeline (Com {[LIT_CHARS sed]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS s/][\ LIT_ESCAPED_CHAR "\\$"][LIT_CHARS USER/][VarSub USER][LIT_CHARS /g]]} ) (Com {[LIT_CHARS sed]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS s/][\ LIT_ESCAPED_CHAR "\\$"][LIT_CHARS ROOT/][ComSub (Pipeline (Com {[LIT_CHARS echo]} {[VarSub ROOT]}) (Com {[LIT_CHARS sed]} {[LIT_CHARS -e]} {[SQ ]}) )][LIT_CHARS /g]]} ) ) ) (Com {[DQ [VarSub ROOT][LIT_CHARS /bin/shiny-server]]} {[VarSub CONFIG_OUT]} {[VarSub @]} ) )