(CommandList children: [ (Sentence child: (C {(.)} { (DQ (BracedVarSub token: <VSub_Name srcdir> suffix_op: (StringUnary op_id:VTest_Equals arg_word:{(.)}) spids: [50 54] ) (/tests/init.sh) ) } ) terminator: <Op_Semi ';'> ) (C {(path_prepend_)} {(./src)}) (C {(print_ver_)} {(mv)}) (C {(skip_if_root_)}) (AndOr ops: [Op_DPipe] children: [(C {(mkdir)} {(-p)} {(no-write/dir)}) (C {(framework_failure_)})] ) (AndOr ops: [Op_DPipe] children: [(C {(chmod)} {(u-w)} {(no-write)}) (C {(framework_failure_)})] ) (AndOr ops: [Op_DAmp] children: [ (SimpleCommand words: [{(mv)} {(no-write/dir)} {(.)}] redirects: [ (Redir op_id:Redir_Great fd:16777215 arg_word:{(out)} spids:[98]) (Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[102]) ] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[107])] spids: [107] ) ] ) (SimpleCommand words: [{(cat)}] redirects: [ (HereDoc op_id: Redir_DLess fd: 16777215 body: {("mv: cannot move 'no-write/dir' to './dir': Permission denied\n")} do_expansion: False here_end: EOF was_filled: T spids: [112] ) (Redir op_id:Redir_Great fd:16777215 arg_word:{(exp)} spids:[116]) ] ) (AndOr ops: [Op_DPipe] children: [ (C {(compare)} {(exp)} {(out)}) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:fail) op:Equal rhs:{(1)} spids:[129])] spids: [129] ) ] ) (C {(Exit)} {($ VSub_Name '$fail')}) ] )