(command.CommandList children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:DIR) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<dirname>} {($ Id.VSub_Number '$0')}) ) } spids: [13] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ARCH) op: assign_op.Equal rhs: {(command_sub left_token:<Id.Left_Backtick '`'> child:(C {<uname>} {<-m>}))} spids: [22] ) ] ) (command.CommandList children: [ (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TZ) op: assign_op.Equal rhs: {<UTC>} spids: [32] ) ] ) terminator: <Id.Op_Semi _> ) (C {<export>} {<TZ>}) ] ) (command.ShFunction name: check body: (BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:NUM) op: assign_op.Equal rhs: {($ Id.VSub_Number '$1')} spids: [48] ) ] ) (C {<shift>}) (command.Pipeline children: [ (C {<awk>} {(SQ <'{$4 = ""; print}'>)}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Simple words: [{<diff>} {<-a>} {<->} {($ Id.VSub_Number '$1')}] redirects: [ (redir op: <Id.Redir_GreatAnd '>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) ] do_fork: T ) ] ) action: [(C {<echo>} {(DQ <'ok '> ($ Id.VSub_DollarName '$NUM'))})] spids: [68 82] ) ] else_action: [(C {<echo>} {(DQ <'not ok '> ($ Id.VSub_DollarName '$NUM'))})] ) ] negated: F ) ] ) ) (command.Simple words: [ {<cat>} {($ Id.VSub_DollarName '$DIR') <'/v1-'> ($ Id.VSub_DollarName '$ARCH') <-acct.in>} {($ Id.VSub_DollarName '$DIR') <'/v2-'> ($ Id.VSub_DollarName '$ARCH') <-acct.in>} ] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<v1v2-> ($ Id.VSub_DollarName '$ARCH') <-acct.in>} ) ] do_fork: T ) (command.Simple words: [ {<cat>} {($ Id.VSub_DollarName '$DIR') <'/v2-'> ($ Id.VSub_DollarName '$ARCH') <.out>} {($ Id.VSub_DollarName '$DIR') <'/v1-'> ($ Id.VSub_DollarName '$ARCH') <.out>} ] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<v1v2-> ($ Id.VSub_DollarName '$ARCH') <.out>} ) ] do_fork: T ) (C {<echo>} {<1..6>}) (command.Pipeline children: [ (C {<lastcomm>} {<-cesuS>} {<-f>} {($ Id.VSub_DollarName '$DIR') <'/v1-'> ($ Id.VSub_DollarName '$ARCH') <-acct.in>} ) (C {<check>} {<1>} {($ Id.VSub_DollarName '$DIR') <'/v1-'> ($ Id.VSub_DollarName '$ARCH') <.out>} ) ] negated: F ) (command.Pipeline children: [ (command.Simple words: [{<lastcomm>} {<-cesuS>} {<-f>} {<->}] redirects: [ (redir op: <Id.Redir_Less '<'> loc: (redir_loc.Fd fd:0) arg: {($ Id.VSub_DollarName '$DIR') <'/v1-'> ($ Id.VSub_DollarName '$ARCH') <-acct.in>} ) ] do_fork: T ) (C {<tail>} {<-r>}) (C {<check>} {<2>} {($ Id.VSub_DollarName '$DIR') <'/v1-'> ($ Id.VSub_DollarName '$ARCH') <.out>} ) ] negated: F ) (command.Pipeline children: [ (C {<lastcomm>} {<-cesuS>} {<-f>} {($ Id.VSub_DollarName '$DIR') <'/v2-'> ($ Id.VSub_DollarName '$ARCH') <-acct.in>} ) (C {<check>} {<3>} {($ Id.VSub_DollarName '$DIR') <'/v2-'> ($ Id.VSub_DollarName '$ARCH') <.out>} ) ] negated: F ) (command.Pipeline children: [ (command.Simple words: [{<lastcomm>} {<-cesuS>} {<-f>} {<->}] redirects: [ (redir op: <Id.Redir_Less '<'> loc: (redir_loc.Fd fd:0) arg: {($ Id.VSub_DollarName '$DIR') <'/v2-'> ($ Id.VSub_DollarName '$ARCH') <-acct.in>} ) ] do_fork: T ) (C {<tail>} {<-r>}) (C {<check>} {<4>} {($ Id.VSub_DollarName '$DIR') <'/v2-'> ($ Id.VSub_DollarName '$ARCH') <.out>} ) ] negated: F ) (command.Pipeline children: [ (C {<lastcomm>} {<-cesuS>} {<-f>} {<v1v2-> ($ Id.VSub_DollarName '$ARCH') <-acct.in>}) (C {<check>} {<5>} {<v1v2-> ($ Id.VSub_DollarName '$ARCH') <.out>}) ] negated: F ) (command.Pipeline children: [ (command.Simple words: [{<lastcomm>} {<-cesuS>} {<-f>} {<->}] redirects: [ (redir op: <Id.Redir_Less '<'> loc: (redir_loc.Fd fd:0) arg: {<v1v2-> ($ Id.VSub_DollarName '$ARCH') <-acct.in>} ) ] do_fork: T ) (C {<tail>} {<-r>}) (C {<check>} {<6>} {<v1v2-> ($ Id.VSub_DollarName '$ARCH') <.out>}) ] negated: F ) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<0>}) ] )