(CommandList children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:anonpass) op: Equal rhs: { (DQ ($ VSub_Name '$LOGNAME') ('@') (CommandSubPart command_list: (CommandList children:[(C {(hostname)})]) left_token: <Left_CommandSub '$('> spids: [15 17] ) ) } spids: [11] ) ] spids: [11] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {($ VSub_Pound '$#')} {(-ne)} {(1)} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (SimpleCommand words: [{(echo)} {(DQ ('Usage: ') ($ VSub_Number '$0') (' ftp://...'))}] redirects: [(Redir op:<Redir_GreatAnd '>&'> fd:16777215 arg_word:{(2)})] ) (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)}) ] spids: [16777215 35] ) ] spids: [16777215 54] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} { (DQ (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [(C {(echo)} {($ VSub_Number '$1')}) (C {(cut)} {(-c1-6)})] negated: F ) ] ) left_token: <Left_CommandSub '$('> spids: [66 76] ) ) } {(KW_Bang '!') (Lit_Other '=')} {(DQ ('ftp://'))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (Sentence child: (SimpleCommand words: [ {(echo)} {(DQ ($ VSub_Number '$0') (': Malformed url. I need it to start with ftp://'))} ] redirects: [(Redir op:<Redir_GreatAnd '>&'> fd:16777215 arg_word:{(2)})] ) terminator: <Op_Semi ';'> ) (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)}) ] spids: [16777215 90] ) ] spids: [16777215 110] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:server) op: Equal rhs: { (DQ (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [(C {(echo)} {($ VSub_Number '$1')}) (C {(cut)} {(-d/)} {(-f3)})] negated: F ) ] ) left_token: <Left_CommandSub '$('> spids: [115 127] ) ) } spids: [113] ) ] spids: [113] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:filename) op: Equal rhs: { (DQ (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [(C {(echo)} {($ VSub_Number '$1')}) (C {(cut)} {(-d/)} {(-f4-)})] negated: F ) ] ) left_token: <Left_CommandSub '$('> spids: [132 144] ) ) } spids: [130] ) ] spids: [130] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:basefile) op: Equal rhs: { (DQ (CommandSubPart command_list: (CommandList children:[(C {(basename)} {($ VSub_Name '$filename')})]) left_token: <Left_CommandSub '$('> spids: [149 153] ) ) } spids: [147] ) ] spids: [147] ) (C {(echo)} {(${ VSub_Number 0) (Lit_Other ':')} {(Downloading)} {($ VSub_Name '$basefile')} {(from)} {(server)} {($ VSub_Name '$server')} ) (SimpleCommand words: [{(ftp)} {(-np)}] redirects: [ (HereDoc op: <Redir_DLess '<<'> fd: 16777215 here_begin: {(EOF)} here_end_span_id: 200 stdin_parts: [ ('open ') ($ VSub_Name '$server') ('\n') ('user ftp ') ($ VSub_Name '$anonpass') ('\n') ('get ') (Right_DoubleQuote '"') ($ VSub_Name '$filename') (Right_DoubleQuote '"') (' ') (Right_DoubleQuote '"') ($ VSub_Name '$basefile') (Right_DoubleQuote '"') ('\n') ('quit\n') ] ) ] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {($ VSub_QMark '$?')} {(-eq)} {(0)} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [(C {(ls)} {(-l)} {($ VSub_Name '$basefile')})] spids: [16777215 216] ) ] spids: [16777215 225] ) (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(0)}) ] )