(command.CommandList children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:outfile) op: assign_op.Equal rhs: {(DQ <'/tmp/rb.'> ($ Id.VSub_Dollar '$$') <.tgz>)} spids: [22] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:outfname) op: assign_op.Equal rhs: { (DQ <backup.> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<date>} {<Id.Lit_Other '+'> <Id.Lit_Other '%'> <y> <Id.Lit_Other '%'> <m> <Id.Lit_Other '%'> <d> } ) ) <.tgz> ) } spids: [29] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:infile) op: assign_op.Equal rhs: {(DQ <'/tmp/rb.'> ($ Id.VSub_Dollar '$$') <.in>)} spids: [46] ) ] ) (C {<trap>} { (DQ (command_sub left_token:<Id.Left_Backtick '`'> child:(C {<which>} {<rm>})) <' -f '> ($ Id.VSub_DollarName '$outfile') <' '> ($ Id.VSub_DollarName '$infile') ) } {<0>} ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_Pound '$#')} {<-ne>} {<2>} {<-a>} {($ Id.VSub_Pound '$#')} {<-ne>} {<3>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [ {<echo>} { (DQ <'Usage: '> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<basename>} {($ Id.VSub_Number '$0')}) ) <' backup-file-list remoteaddr {targetdir}'> ) } ] redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] do_fork: T ) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] spids: [73 95] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-s>} {(DQ ($ Id.VSub_Number '$1'))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [ {<echo>} {(DQ <'Error: backup list '> ($ Id.VSub_Number '$1') <' is empty or missing'>)} ] redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] do_fork: T ) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] spids: [121 137] ) ] ) (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands: [(command.Sentence child:(C {<read>} {<entry>}) terminator:<Id.Op_Semi _>)] ) body: (command.DoGroup children: [ (command.Pipeline children: [ (C {<echo>} {(DQ ($ Id.VSub_DollarName '$entry'))}) (command.Simple words: [{<sed>} {<-e>} {(SQ <'s/ /\\\\ /g'>)}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName '$infile')} ) ] do_fork: T ) ] negated: F ) ] ) redirects: [ (redir op: <Id.Redir_Less '<'> loc: (redir_loc.Fd fd:0) arg: {(DQ ($ Id.VSub_Number '$1'))} ) ] ) (command.Pipeline children: [ (C {<tar>} {<czf>} {<->} { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<cat>} {($ Id.VSub_DollarName '$infile')}) ) } ) (C {<uuencode>} {($ Id.VSub_DollarName '$outfname')}) (C {<mail>} {<-s>} { (DQ (braced_var_sub token: <Id.VSub_Number 3> suffix_op: (suffix_op.Unary tok: <Id.VTest_ColonHyphen ':-'> arg_word: {<'Backup archive for '> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<date>}) ) } ) ) ) } {(DQ ($ Id.VSub_Number '$2'))} ) ] negated: F ) (C {<echo>} { (DQ <'Done. '> (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<basename>} {($ Id.VSub_Number '$0')}) ) <' backed up the following files:'> ) } ) (C {<sed>} {(SQ <'s/^/ /'>)} {($ Id.VSub_DollarName '$infile')}) (C {<echo>} {<-n>} {(DQ <'and mailed them to '> ($ Id.VSub_Number '$2') <' '>)}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-z>} {(DQ ($ Id.VSub_Number '$3'))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<echo>} {(DQ <'with requested target directory '> ($ Id.VSub_Number '$3'))})] spids: [287 303] ) ] else_action: [(C {<echo>} {(DQ )})] ) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<0>}) ] )