(command.CommandList children: [ (command.CommandList children: [ (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:Z) op: assign_op.Equal rhs: {(DQ <compress>)} spids: [15] ) ] ) terminator: <Id.Op_Semi _> ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:unZ) op: assign_op.Equal rhs: {(DQ <uncompress>)} spids: [21] ) ] ) terminator: <Id.Op_Semi _> ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:Zlist) op: assign_op.Equal rhs: {(DQ )} spids: [28] ) ] ) ] ) (command.CommandList children: [ (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:gz) op: assign_op.Equal rhs: {(DQ <gzip>)} spids: [32] ) ] ) terminator: <Id.Op_Semi _> ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ungz) op: assign_op.Equal rhs: {(DQ <gunzip>)} spids: [39] ) ] ) terminator: <Id.Op_Semi _> ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:gzlist) op: assign_op.Equal rhs: {(DQ )} spids: [46] ) ] ) ] ) (command.CommandList children: [ (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:bz) op: assign_op.Equal rhs: {(DQ <bzip2>)} spids: [50] ) ] ) terminator: <Id.Op_Semi _> ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:unbz) op: assign_op.Equal rhs: {(DQ <bunzip2>)} spids: [57] ) ] ) terminator: <Id.Op_Semi _> ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:bzlist) op: assign_op.Equal rhs: {(DQ )} spids: [64] ) ] ) ] ) (command.ForEach iter_name: arg do_arg_iter: T body: (command.DoGroup children: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-f>} {(DQ ($ Id.VSub_DollarName '$arg'))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] action: [ (command.Case to_match: {(DQ ($ Id.VSub_DollarName '$arg'))} arms: [ (case_arm pat_list: [{<Id.Lit_Star '*'> <.Z>}] action: [ (C {($ Id.VSub_DollarName '$unZ')} {(DQ ($ Id.VSub_DollarName '$arg'))}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:arg) op: assign_op.Equal rhs: { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<echo>} {($ Id.VSub_DollarName '$arg')}) (C {<sed>} {(SQ <'s/\\.Z$//'>)}) ] negated: F ) ) ) } spids: [130] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:Zlist) op: assign_op.Equal rhs: { (DQ ($ Id.VSub_DollarName '$Zlist') <' '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ) ($ Id.VSub_DollarName '$arg') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) ) } spids: [148] ) ] ) ] spids: [119 121 158 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'> <.gz>}] action: [ (C {($ Id.VSub_DollarName '$ungz')} {(DQ ($ Id.VSub_DollarName '$arg'))}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:arg) op: assign_op.Equal rhs: { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<echo>} {($ Id.VSub_DollarName '$arg')}) (C {<sed>} {(SQ <'s/\\.gz$//'>)}) ] negated: F ) ) ) } spids: [173] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:gzlist) op: assign_op.Equal rhs: { (DQ ($ Id.VSub_DollarName '$gzlist') <' '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ) ($ Id.VSub_DollarName '$arg') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) ) } spids: [191] ) ] ) ] spids: [162 164 201 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'> <.bz2>}] action: [ (C {($ Id.VSub_DollarName '$unbz')} {(DQ ($ Id.VSub_DollarName '$arg'))}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:arg) op: assign_op.Equal rhs: { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<echo>} {($ Id.VSub_DollarName '$arg')}) (C {<sed>} {(SQ <'s/\\.bz2$//'>)}) ] negated: F ) ) ) } spids: [216] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:bzlist) op: assign_op.Equal rhs: { (DQ ($ Id.VSub_DollarName '$bzlist') <' '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ) ($ Id.VSub_DollarName '$arg') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) ) } spids: [234] ) ] ) ] spids: [205 207 244 -1] ) ] ) ] spids: [93 107] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:newargs) op: assign_op.Equal rhs: { (DQ (braced_var_sub token: <Id.VSub_Name newargs> suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{(DQ )}) ) <' '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) ($ Id.VSub_DollarName '$arg') (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ) ) } spids: [254] ) ] ) ] ) ) (command.Case to_match: {($ Id.VSub_Number '$0')} arms: [ (case_arm pat_list: [{<Id.Lit_Star '*'> <zcat> <Id.Lit_Star '*'>}] action: [(C {<eval>} {<cat>} {($ Id.VSub_DollarName '$newargs')})] spids: [278 282 290 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'> <zmore> <Id.Lit_Star '*'>}] action: [(C {<eval>} {<more>} {($ Id.VSub_DollarName '$newargs')})] spids: [293 297 305 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'> <zgrep> <Id.Lit_Star '*'>}] action: [(C {<eval>} {<grep>} {($ Id.VSub_DollarName '$newargs')})] spids: [308 312 320 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [ (command.Sentence child: (command.Simple words: [ {<echo>} {(DQ ($ Id.VSub_Number '$0') <': unknown base name. Can\'t proceed.'>)} ] redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] do_fork: T ) terminator: <Id.Op_Semi _> ) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] spids: [323 325 -1 342] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-z>} {(DQ ($ Id.VSub_DollarName '$Zlist'))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] action: [(C {<eval>} {($ Id.VSub_DollarName '$Z')} {($ Id.VSub_DollarName '$Zlist')})] spids: [349 365] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-z>} {(DQ ($ Id.VSub_DollarName '$gzlist')) <Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] action: [(C {<eval>} {($ Id.VSub_DollarName '$gz')} {($ Id.VSub_DollarName '$gzlist')})] spids: [376 391] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-z>} {(DQ ($ Id.VSub_DollarName '$bzlist'))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] action: [(C {<eval>} {($ Id.VSub_DollarName '$bz')} {($ Id.VSub_DollarName '$bzlist')})] spids: [402 418] ) ] ) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<0>}) ] )