(command.CommandList children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:iam) op: assign_op.Equal rhs: {(command_sub left_token:<Id.Left_DollarParen '$('> child:(C {<id>} {<-un>}))} spids: [12] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:myhome) op: assign_op.Equal rhs: { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<grep>} {(DQ <'^'> (${ Id.VSub_Name iam) <':'>)} {<'/etc/passwd'>}) (C {<cut>} {<-d> <Id.Lit_Colon ':'>} {<-f6>}) ] negated: F ) ) ) } spids: [19] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$iam'))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ <guest>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [{<echo>} {(DQ <'Error: you really don\'t want to run fixguest on this account.'>)}] 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: [50 69] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-d>} {($ Id.VSub_DollarName '$myhome') <'/..template'>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [ {<echo>} {(DQ ($ Id.VSub_Number '$0') <': no template directory found for rebuilding.'>)} ] 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: [89 104] ) ] ) (C {<cd>} {($ Id.VSub_DollarName '$myhome')}) (C {<rm>} {<-rf>} {<Id.Lit_Star '*'>} { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<find>} {<.>} {<-name>} {(DQ <'.[a-zA-Z0-9]*'>)} {<-print>}) ) } ) (C {<cp>} {<-Rp>} {<'..template/'> <Id.Lit_Star '*'>} {<.>}) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<0>}) ] )