(List (FunctionDef err_exit [] (List (Com {[LIT_CHARS print]} {[LIT_CHARS -u2]} {[LIT_CHARS -n]} {[DQ [\ LIT_ESCAPED_CHAR "\\t"]]}) (Com {[LIT_CHARS print]} {[LIT_CHARS -u2]} {[LIT_CHARS -r]} {[VarSub Command] [LIT_OTHER "["] [VarSub 1] [LIT_OTHER "]"] [LIT_OTHER ":"]} {[DQ [VarSub @ transform_ops=[Slice {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 2]}} None]]]}) (Com {[LIT_CHARS let]} {[LIT_VAR_LIKE "Errors+="] [LIT_CHARS 1] =}) ) ) (Com {[LIT_CHARS alias]} {[LIT_VAR_LIKE "err_exit="] [SQ ] =}) (= scope= flags=0 words=[] bindings=[('Command', {[VarSub 0 transform_ops=[VS_UNARY_DPOUND {[LIT_CHARS "*"] [LIT_SLASH /]}]]})]) (Com {[LIT_CHARS integer]} {[LIT_VAR_LIKE "Errors="] [LIT_CHARS 0] =}) (AndOr OP_OR_IF (= scope= flags=0 words=[] bindings=[('tmp', {[ComSub (Com {[LIT_CHARS mktemp]} {[LIT_CHARS -dt]})]})]) (List (Com {[LIT_CHARS err_exit]} {[LIT_CHARS mktemp]} {[LIT_CHARS -dt]} {[LIT_CHARS failed]}) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]}) ) ) (Com {[LIT_CHARS trap]} {[DQ [LIT_CHARS "cd /; rm -rf "][VarSub tmp]]} {[LIT_CHARS EXIT]}) (FunctionDef abspath [] (List (= scope= flags=0 words=[] bindings=[('base', {[ComSub (Com {[LIT_CHARS basename]} {[VarSub SHELL]})]})]) (Com {[LIT_CHARS cd]} {[VarSub SHELL transform_ops=[VS_UNARY_PERCENT {[LIT_SLASH /] [VarSub base]}]]}) (= scope= flags=0 words=[] bindings=[('newdir', {[ComSub (Com {[LIT_CHARS pwd]})]})]) (Com {[LIT_CHARS cd]} {[TildeSub '-']}) (Com {[LIT_CHARS print]} {[VarSub newdir] [LIT_CHARS /] [VarSub base]}) ) ) (Com {[LIT_CHARS builtin]} {[LIT_CHARS getconf]}) (= scope= flags=0 words=[] bindings=[('ABSHELL', {[ComSub (Com {[LIT_CHARS abspath]})]})]) (AndOr OP_OR_IF (Com {[LIT_CHARS cd]} {[VarSub tmp]}) (List (Com {[LIT_CHARS err_exit]} {[DQ [LIT_CHARS "cd "][VarSub tmp][LIT_CHARS " failed"]]}) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]}) ) ) (Com {[LIT_CHARS print]} {[LIT_CHARS exit]} {[LIT_CHARS 0]} < (FilenameRedirectNode filename={[LIT_CHARS .profile]} "> 1), > ) (Com {[VarSub ABSHELL]} < (HereDocRedirectNode here_end='!' do_expansion=True body_word={[DQ [LIT_CHARS "HOME="][VarSub PWD][LIT_CHARS " "][LIT_CHARS "PATH="][VarSub PATH][LIT_CHARS " "][LIT_CHARS "SHELL="][VarSub ABSSHELL][LIT_CHARS " "][ComSub (List (= scope= flags=0 words=[] bindings=[('v', {[ComSub (Com {[LIT_CHARS getconf]} {[LIT_CHARS LIBPATH]})]})]) (For v [{[VarSub v transform_ops=[PatSub {[LIT_CHARS ","]} {[LIT_CHARS " "]} do_all]]}]) (List (= scope= flags=0 words=[] bindings=[('v', {[VarSub v transform_ops=[VS_UNARY_POUND {[LIT_CHARS "*:"]}]]})]) (= scope= flags=0 words=[] bindings=[('v', {[VarSub v transform_ops=[VS_UNARY_DPERCENT {[LIT_CHARS ":*"]}]]})]) (AndOr OP_AND_IF (Com {[LIT_CHARS eval]} {[LIT_LEFT_DBRACKET "[["]} {[\ LIT_ESCAPED_CHAR "\\$"] [VarSub v]} {[LIT_OTHER "]"] [LIT_OTHER "]"]}) (Com {[LIT_CHARS eval]} {[LIT_CHARS print]} {[LIT_CHARS -n]} {[\ LIT_ESCAPED_CHAR "\\\""]} {[\ LIT_ESCAPED_CHAR "\\\""] [\ LIT_ESCAPED_CHAR "\\$"] [LIT_VAR_LIKE "v="] [\ LIT_ESCAPED_CHAR "\\\""] [\ LIT_ESCAPED_CHAR "\\$"] [VarSub v] [\ LIT_ESCAPED_CHAR "\\\""]}) ) ) ) )][LIT_CHARS " "][LIT_CHARS "exec -c -a -ksh "][VarSub ABSHELL][LIT_CHARS " -c "][RIGHT_D_QUOTE "\""][LIT_CHARS "exit 1"][RIGHT_D_QUOTE "\""][LIT_CHARS " 1>/dev/null 2>&1\n"]]} 0), > ) (= scope= flags=0 words=[] bindings=[('status', {[ComSub (Com {[LIT_CHARS echo]} {[VarSub ?]})]})]) (If (DBracket {B? LOGICAL_BINARY_AND {B1 UNARY_OTHER_o {[LIT_CHARS noprivileged]}} {B2 BINARY_STRING_NOT_EQUAL {[VarSub status]} {[LIT_CHARS 0]}}}) (Com {[LIT_CHARS err_exit]} {[SQ ]}) (DBracket {B? LOGICAL_BINARY_AND {B1 UNARY_OTHER_o {[LIT_CHARS privileged]}} {B2 BINARY_STRING_EQUAL {[VarSub status]} {[LIT_CHARS 0]}}}) (Com {[LIT_CHARS err_exit]} {[SQ ]}) ) (If (DBracket {B2 BINARY_STRING_NOT_EQUAL {[ComSub (List (Com {[LIT_CHARS trap]} {[SQ ]} {[LIT_CHARS 0]}) (Com {[LIT_CHARS exit]} {[LIT_CHARS 123]}) )]} {[LIT_CHARS 123]}}) (Com {[LIT_CHARS err_exit]} {[SQ ]}) ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS run.sh]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=False body_word={[LIT_CHARS "trap 'code=$?; echo $code; trap 0; exit $code' 0\n"] [LIT_CHARS "( trap 0; exit 123 )\n"]} 0), > ) (If (DBracket {B2 BINARY_STRING_NOT_EQUAL {[ComSub (Com {[VarSub SHELL]} {[LIT_CHARS ./run.sh]})]} {[LIT_CHARS 123]}}) (Com {[LIT_CHARS err_exit]} {[SQ ]}) ) (AndOr OP_OR_IF (Com {[LIT_CHARS cd]} {[TildeSub '-']}) (Com {[LIT_CHARS err_exit]} {[DQ [LIT_CHARS "cd back failed"]]}) ) (AndOr OP_OR_IF (Com {[VarSub SHELL]} {[LIT_CHARS -c]} {[SQ ]} < (FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 1), (DescriptorRedirectNode target={[LIT_CHARS 1]} &"> 2), > ) (Com {[LIT_CHARS err_exit]} {[SQ ]}) ) (Com {[LIT_CHARS exit]} {[ArithSub {A3 AS_OP_QMARK {A2 AS_OP_LESS {A Atom NODE_ARITH_WORD {[VarSub Errors]}} {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 125]}}} {A Atom NODE_ARITH_WORD {[VarSub Errors]}} {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 125]}}}]}) )