(CommandList children: [ (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:tid) op:Equal rhs:{(DQ ('sftp batchfile'))} spids:[7])] spids: [7] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:BATCH) op: Equal rhs: {(${ VSub_Name OBJ) (/sftp.bb)} spids: [13] ) ] spids: [13] ) (C {(rm)} {(-rf)} {(${ VSub_Name COPY)} {(${ VSub_Name COPY) (.1)} {(${ VSub_Name COPY) (.2)} {(${ VSub_Name COPY) (.dd)} {(${ VSub_Name BATCH) (.) (Lit_Other '*')} ) (SimpleCommand words: [{(cat)}] redirects: [ (HereDoc op_id: Redir_DLess fd: -1 body: { (DQ ('\tget ') ($ VSub_Name '$DATA') (' ') ($ VSub_Name '$COPY') ('\n') ('\tput ') (${ VSub_Name COPY) (' ') (${ VSub_Name COPY) ('.1\n') ('\trm ') (${ VSub_Name COPY) ('\n') ('\t-put ') (${ VSub_Name COPY) (' ') (${ VSub_Name COPY) ('.2\n') ) } do_expansion: True here_end: EOF was_filled: True spids: [52] ) (Redir op_id:Redir_Great fd:-1 arg_word:{(${ VSub_Name BATCH) (.pass.1)} spids:[56]) ] ) (SimpleCommand words: [{(cat)}] redirects: [ (HereDoc op_id: Redir_DLess fd: -1 body: {(DQ ('\t# This is a comment\n') ('\n') ('\t# That was a blank line\n') ('\tls\n'))} do_expansion: True here_end: EOF was_filled: True spids: [95] ) (Redir op_id:Redir_Great fd:-1 arg_word:{(${ VSub_Name BATCH) (.pass.2)} spids:[99]) ] ) (SimpleCommand words: [{(cat)}] redirects: [ (HereDoc op_id: Redir_DLess fd: -1 body: { (DQ ('\tget ') ($ VSub_Name '$DATA') (' ') ($ VSub_Name '$COPY') ('\n') ('\tput ') (${ VSub_Name COPY) (' ') (${ VSub_Name COPY) ('.3\n') ('\trm ') (${ VSub_Name COPY) ('.*\n') ('\t# The next command should fail\n') ('\tput ') (${ VSub_Name COPY) ('.3 ') (${ VSub_Name COPY) ('.4\n') ) } do_expansion: True here_end: EOF was_filled: True spids: [114] ) (Redir op_id:Redir_Great fd:-1 arg_word:{(${ VSub_Name BATCH) (.fail.1)} spids:[118]) ] ) (SimpleCommand words: [{(cat)}] redirects: [ (HereDoc op_id: Redir_DLess fd: -1 body: {(DQ ('\t# The next command should fail\n') ('\tjajajajaja\n'))} do_expansion: True here_end: EOF was_filled: True spids: [158] ) (Redir op_id:Redir_Great fd:-1 arg_word:{(${ VSub_Name BATCH) (.fail.2)} spids:[162]) ] ) (C {(verbose)} {(DQ ($ VSub_Name '$tid') (': good commands'))}) (AndOr children: [ (SimpleCommand words: [ {(${ VSub_Name SFTP)} {(-b)} {(${ VSub_Name BATCH) (.pass.1)} {(-D)} {(${ VSub_Name SFTPSERVER)} ] redirects: [ (Redir op_id:Redir_Great fd:-1 arg_word:{(/dev/null)} spids:[197]) (Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[200]) ] ) (C {(fail)} {(DQ ('good commands failed'))}) ] op_id: Op_DPipe ) (C {(verbose)} {(DQ ($ VSub_Name '$tid') (': bad commands'))}) (AndOr children: [ (SimpleCommand words: [ {(${ VSub_Name SFTP)} {(-b)} {(${ VSub_Name BATCH) (.fail.1)} {(-D)} {(${ VSub_Name SFTPSERVER)} ] redirects: [ (Redir op_id:Redir_Great fd:-1 arg_word:{(/dev/null)} spids:[238]) (Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[241]) ] ) (C {(fail)} {(DQ ('bad commands succeeded'))}) ] op_id: Op_DAmp ) (C {(verbose)} {(DQ ($ VSub_Name '$tid') (': comments and blanks'))}) (AndOr children: [ (SimpleCommand words: [ {(${ VSub_Name SFTP)} {(-b)} {(${ VSub_Name BATCH) (.pass.2)} {(-D)} {(${ VSub_Name SFTPSERVER)} ] redirects: [ (Redir op_id:Redir_Great fd:-1 arg_word:{(/dev/null)} spids:[279]) (Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[282]) ] ) (C {(fail)} {(DQ ('comments & blanks failed'))}) ] op_id: Op_DPipe ) (C {(verbose)} {(DQ ($ VSub_Name '$tid') (': junk command'))}) (AndOr children: [ (SimpleCommand words: [ {(${ VSub_Name SFTP)} {(-b)} {(${ VSub_Name BATCH) (.fail.2)} {(-D)} {(${ VSub_Name SFTPSERVER)} ] redirects: [ (Redir op_id:Redir_Great fd:-1 arg_word:{(/dev/null)} spids:[320]) (Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[323]) ] ) (C {(fail)} {(DQ ('junk command succeeded'))}) ] op_id: Op_DAmp ) (C {(rm)} {(-rf)} {(${ VSub_Name COPY)} {(${ VSub_Name COPY) (.1)} {(${ VSub_Name COPY) (.2)} {(${ VSub_Name COPY) (.dd)} {(${ VSub_Name BATCH) (.) (Lit_Other '*')} ) ] )