(command.CommandList children: [ (C {<set>} {<-e>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TMP) op: assign_op.Equal rhs: {<'/tmp/mtree.'> ($ Id.VSub_Dollar '$$')} spids: [33] ) ] ) (C {<rm>} {<-rf>} {(${ Id.VSub_Name TMP)}) (C {<mkdir>} {<-p>} {(${ Id.VSub_Name TMP)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:K) op: assign_op.Equal rhs: {<uid> <Id.Lit_Comma ','> <uname> <Id.Lit_Comma ','> <gid> <Id.Lit_Comma ','> <gname> <Id.Lit_Comma ','> <flags> <Id.Lit_Comma ','> <md5digest> <Id.Lit_Comma ','> <size> <Id.Lit_Comma ','> <ripemd160digest> <Id.Lit_Comma ','> <sha1digest> <Id.Lit_Comma ','> <sha256digest> <Id.Lit_Comma ','> <cksum> } spids: [55] ) ] ) (C {<rm>} {<-rf>} {<_FOO>}) (C {<mkdir>} {<_FOO>}) (C {<touch>} {<'_FOO/_uid'>}) (C {<touch>} {<'_FOO/_size'>}) (C {<touch>} {<'_FOO/zztype'>}) (C {<touch>} {<'_FOO/_bar'>}) (command.Simple words: [{<mtree>} {<-c>} {<-K>} {($ Id.VSub_DollarName '$K')} {<-p>} {<..>}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {(${ Id.VSub_Name TMP) <'/_r'>} ) ] do_fork: T ) (command.Simple words: [{<mtree>} {<-c>} {<-K>} {($ Id.VSub_DollarName '$K')} {<-p>} {<..>}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {(${ Id.VSub_Name TMP) <'/_r2'>} ) ] do_fork: T ) (C {<rm>} {<-rf>} {<'_FOO/_bar'>}) (C {<rm>} {<-rf>} {<'_FOO/zztype'>}) (C {<mkdir>} {<'_FOO/zztype'>}) (command.Simple words: [{<date>}] redirects: [(redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<'_FOO/_size'>})] do_fork: T ) (C {<chown>} {<nobody>} {<'_FOO/_uid'>}) (C {<touch>} {<'_FOO/_foo'>}) (command.Simple words: [{<mtree>} {<-c>} {<-K>} {($ Id.VSub_DollarName '$K')} {<-p>} {<..>}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {(${ Id.VSub_Name TMP) <'/_t'>} ) ] do_fork: T ) (C {<rm>} {<-fr>} {<_FOO>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<mtree>} {<-f>} {(${ Id.VSub_Name TMP) <'/_r'>} {<-f>} {(${ Id.VSub_Name TMP) <'/_r2'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<true>})] spids: [208 228] ) ] else_action: [ (command.Simple words: [{<echo>} {(DQ <'ERROR Compare identical failed'>)}] redirects: [(redir op:<Id.Redir_GreatAnd '1>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] do_fork: T ) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple words: [ {<mtree>} {<-f>} {(${ Id.VSub_Name TMP) <'/_r'>} {<-f>} {(${ Id.VSub_Name TMP) <'/_t'>} ] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {(${ Id.VSub_Name TMP) <'/_'>} ) ] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [{<echo>} {(DQ <'ERROR Compare different succeeded'>)}] redirects: [(redir op:<Id.Redir_GreatAnd '1>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] do_fork: T ) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] spids: [254 281] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} { (command_sub left_token: <Id.Left_Backtick '`'> child: (command.Simple words: [{<wc>} {<-l>}] redirects: [ (redir op: <Id.Redir_Less '<'> loc: (redir_loc.Fd fd:0) arg: {(${ Id.VSub_Name TMP) <'/_'>} ) ] do_fork: T ) ) } {<-ne>} {<10>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [ {<echo>} { (DQ <'ERROR wrong number of lines: '> (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<wc>} {<-l>} {(${ Id.VSub_Name TMP) <'/_'>}) ) ) } ] redirects: [(redir op:<Id.Redir_GreatAnd '1>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] do_fork: T ) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] spids: [301 328] ) ] ) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<0>}) ] )