(command.CommandList children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PATH='> name:PATH) op: assign_op.Equal rhs: {<'/usr/bin'>} spids: [79] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'USAGE='> name:USAGE) op: assign_op.Equal rhs: {(DQ <'usage: dircmp [-d] [-s] [-wn] dir1 dir2'>)} spids: [82] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TEMPDIR='> name:TEMPDIR) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<mktemp>} {<-d>} {<'/var/tmp/dir.XXXXXX'>}) right: <Id.Backtick_Right '`'> ) } spids: [88] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-z>} {(DQ ($ Id.VSub_DollarName TEMPDIR))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Sentence child: (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) terminator: <Id.Op_Semi _> ) ] spids: [99 112] ) ] else_action: [] redirects: [] ) (C {<trap>} {(DQ <'rm -f -r '> ($ Id.VSub_DollarName TEMPDIR) <';exit'>)} {<0>} {<1>} {<2>} {<3>} {<15>}) (C {<typeset>} {<-i>} {<Id.Lit_VarLike 'exitstat='> <0>}) (C {<typeset>} {<-i>} {<sizediff>}) (C {<typeset>} {<-i>} {<cmpdiff>}) (C {<typeset>} {<-i>} {<Id.Lit_VarLike 'Sflag='> <0>}) (C {<typeset>} {<-i>} {<Id.Lit_VarLike 'Dflag='> <0>}) (C {<typeset>} {<-i>} {<fsize1>}) (C {<typeset>} {<-i>} {<fsize2>}) (C {<typeset>} {<-l>} {<Id.Lit_VarLike 'LFBOUND='> <2147483648>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'width='> name:width) op: assign_op.Equal rhs: {<72>} spids: [193] ) ] redirects: [] ) (command.ShFunction name: dodiffs body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'type='> name:type) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (command.Simple words: [ {<file>} {($ Id.VSub_DollarName D1) <'/'> (DQ ($ Id.VSub_DollarName a))} ] redirects: [] more_env: [(env_pair name:LC_MESSAGES val:{<C>} spids:[218])] do_fork: T ) right: <Id.Backtick_Right '`'> ) } spids: [214] ) ] redirects: [] ) (command.Case to_match: {(DQ ($ Id.VSub_DollarName type))} arms: [ (case_arm pat_list: [{<Id.Lit_Star '*'> <text>}] action: [] spids: [240 242 244 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'> <script>}] action: [] spids: [247 249 251 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'> <empty> <Id.Lit_Star '*'>}] action: [ (command.Pipeline children: [ (C {<echo>} {($ Id.VSub_DollarName D1) <'/'> (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<basename>} {(DQ ($ Id.VSub_DollarName a))}) right: <Id.Backtick_Right '`'> ) } {<is>} {<an>} {<empty>} {<file>} ) (command.Simple words: [ {<pr>} {<-h>} { (DQ <'diff of '> ($ Id.VSub_DollarName a) <' in '> ($ Id.VSub_DollarName D1) <' and '> ($ Id.VSub_DollarName D2) ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName TEMPDIR) <'/dc'> ($ Id.VSub_Dollar '$') <g>} ) ] more_env: [] do_fork: T ) ] negated: F stderr_indices: [] ) (command.ControlFlow token:<Id.ControlFlow_Continue continue>) ] spids: [254 257 308 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'> <cannot> <Id.Lit_Star '*'>}] action: [ (command.Pipeline children: [ (C {<echo>} {($ Id.VSub_DollarName D1) <'/'> (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<basename>} {(DQ ($ Id.VSub_DollarName a))}) right: <Id.Backtick_Right '`'> ) } {<does>} {<not>} {<exist>} ) (command.Simple words: [ {<pr>} {<-h>} { (DQ <'diff of '> ($ Id.VSub_DollarName a) <' in '> ($ Id.VSub_DollarName D1) <' and '> ($ Id.VSub_DollarName D2) ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName TEMPDIR) <'/dc'> ($ Id.VSub_Dollar '$') <g>} ) ] more_env: [] do_fork: T ) ] negated: F stderr_indices: [] ) (command.ControlFlow token:<Id.ControlFlow_Continue continue>) ] spids: [311 314 363 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [ (command.Pipeline children: [ (C {<echo>} {($ Id.VSub_DollarName D1) <'/'> (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<basename>} {(DQ ($ Id.VSub_DollarName a))}) right: <Id.Backtick_Right '`'> ) } {<is>} {<an>} {<object>} {<file>} ) (command.Simple words: [ {<pr>} {<-h>} { (DQ <'diff of '> ($ Id.VSub_DollarName a) <' in '> ($ Id.VSub_DollarName D1) <' and '> ($ Id.VSub_DollarName D2) ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName TEMPDIR) <'/dc'> ($ Id.VSub_Dollar '$') <g>} ) ] more_env: [] do_fork: T ) ] negated: F stderr_indices: [] ) (command.ControlFlow token:<Id.ControlFlow_Continue continue>) ] spids: [366 367 418 -1] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'type='> name:type) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (command.Simple words: [ {<file>} {($ Id.VSub_DollarName D2) <'/'> (DQ ($ Id.VSub_DollarName a))} ] redirects: [] more_env: [(env_pair name:LC_MESSAGES val:{<C>} spids:[428])] do_fork: T ) right: <Id.Backtick_Right '`'> ) } spids: [424] ) ] redirects: [] ) (command.Case to_match: {(DQ ($ Id.VSub_DollarName type))} arms: [ (case_arm pat_list: [{<Id.Lit_Star '*'> <text>}] action: [] spids: [450 452 454 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'> <script>}] action: [] spids: [457 459 461 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'> <empty> <Id.Lit_Star '*'>}] action: [ (command.Pipeline children: [ (C {<echo>} {($ Id.VSub_DollarName D2) <'/'> (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<basename>} {(DQ ($ Id.VSub_DollarName a))}) right: <Id.Backtick_Right '`'> ) } {<is>} {<an>} {<empty>} {<file>} ) (command.Simple words: [ {<pr>} {<-h>} { (DQ <'diff of '> ($ Id.VSub_DollarName a) <' in '> ($ Id.VSub_DollarName D1) <' and '> ($ Id.VSub_DollarName D2) ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName TEMPDIR) <'/dc'> ($ Id.VSub_Dollar '$') <g>} ) ] more_env: [] do_fork: T ) ] negated: F stderr_indices: [] ) (command.ControlFlow token:<Id.ControlFlow_Continue continue>) ] spids: [464 467 518 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'> <cannot> <Id.Lit_Star '*'>}] action: [ (command.Pipeline children: [ (C {<echo>} {($ Id.VSub_DollarName D2) <'/'> (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<basename>} {(DQ ($ Id.VSub_DollarName a))}) right: <Id.Backtick_Right '`'> ) } {<does>} {<not>} {<exist>} ) (command.Simple words: [ {<pr>} {<-h>} { (DQ <'diff of '> ($ Id.VSub_DollarName a) <' in '> ($ Id.VSub_DollarName D1) <' and '> ($ Id.VSub_DollarName D2) ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName TEMPDIR) <'/dc'> ($ Id.VSub_Dollar '$') <g>} ) ] more_env: [] do_fork: T ) ] negated: F stderr_indices: [] ) (command.ControlFlow token:<Id.ControlFlow_Continue continue>) ] spids: [521 524 573 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [ (command.Pipeline children: [ (C {<echo>} {($ Id.VSub_DollarName D2) <'/'> (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<basename>} {(DQ ($ Id.VSub_DollarName a))}) right: <Id.Backtick_Right '`'> ) } {<is>} {<an>} {<object>} {<file>} ) (command.Simple words: [ {<pr>} {<-h>} { (DQ <'diff of '> ($ Id.VSub_DollarName a) <' in '> ($ Id.VSub_DollarName D1) <' and '> ($ Id.VSub_DollarName D2) ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName TEMPDIR) <'/dc'> ($ Id.VSub_Dollar '$') <g>} ) ] more_env: [] do_fork: T ) ] negated: F stderr_indices: [] ) (command.ControlFlow token:<Id.ControlFlow_Continue continue>) ] spids: [576 577 628 -1] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DAmp left: (arith_expr.Binary op_id: Id.Arith_Less left: ($ Id.Lit_ArithVarLike fsize1) right: ($ Id.Lit_ArithVarLike LFBOUND) ) right: (arith_expr.Binary op_id: Id.Arith_Less left: ($ Id.Lit_ArithVarLike fsize2) right: ($ Id.Lit_ArithVarLike LFBOUND) ) ) redirects: [] ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'cmd='> name:cmd) op: assign_op.Equal rhs: {(DQ <diff>)} spids: [674] ) ] redirects: [] ) ] spids: [650 672] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'cmd='> name:cmd) op: assign_op.Equal rhs: {(DQ <bdiff>)} spids: [682] ) ] redirects: [] ) ] redirects: [] ) (command.Pipeline children: [ (command.Subshell child: (command.CommandList children: [ (command.Sentence child: (C {($ Id.VSub_DollarName cmd)} {(DQ ($ Id.VSub_DollarName D1)) <'/'> (DQ ($ Id.VSub_DollarName a))} {(DQ ($ Id.VSub_DollarName D2)) <'/'> (DQ ($ Id.VSub_DollarName a))} ) terminator: <Id.Op_Semi _> ) (command.Simple words: [{<echo>} {($ Id.VSub_QMark '?')}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName TEMPDIR) <'/dc'> ($ Id.VSub_Dollar '$') <status>} ) ] more_env: [] do_fork: T ) ] ) redirects: [] ) (command.Simple words: [ {<pr>} {<-h>} { (DQ <'diff of '> ($ Id.VSub_DollarName a) <' in '> ($ Id.VSub_DollarName D1) <' and '> ($ Id.VSub_DollarName D2) ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName TEMPDIR) <'/dc'> ($ Id.VSub_Dollar '$') <g>} ) ] more_env: [] do_fork: T ) ] negated: F stderr_indices: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobNEqual left: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<cat>} {($ Id.VSub_DollarName TEMPDIR) <'/dc'> ($ Id.VSub_Dollar '$') <status> } ) right: <Id.Backtick_Right '`'> ) } right: {<0>} ) redirects: [] ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'exitstat='> name:exitstat) op: assign_op.Equal rhs: {($ Id.VSub_DollarName diffstat)} spids: [772] ) ] redirects: [] ) ] spids: [748 770] ) ] else_action: [] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands:[(C {<getopts>} {<dsw> <Id.Lit_Colon ':'>} {<i>})]) body: (command.DoGroup children: [ (command.Case to_match: {($ Id.VSub_DollarName i)} arms: [ (case_arm pat_list: [{<d>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'Dflag='> name:Dflag) op: assign_op.Equal rhs: {<1>} spids: [811] ) ] redirects: [] ) ] spids: [808 809 813 -1] ) (case_arm pat_list: [{<s>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'Sflag='> name:Sflag) op: assign_op.Equal rhs: {<1>} spids: [820] ) ] redirects: [] ) ] spids: [817 818 822 -1] ) (case_arm pat_list: [{<w>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'width='> name:width) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (command.Simple words: [ {<expr>} {($ Id.VSub_DollarName OPTARG)} {<Id.Lit_Other '+'>} {<0>} ] redirects: [ (redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {<'/dev/null'>} ) ] more_env: [] do_fork: T ) right: <Id.Backtick_Right '`'> ) } spids: [829] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {($ Id.VSub_QMark '?')} {<Id.Lit_Equals '='>} {<2>} {<Id.Lit_RBracket ']'>} ) ] ) action: [ (C {<echo>} {(DQ <'dircmp: numeric argument required'>)}) (command.ControlFlow token: <Id.ControlFlow_Exit exit> arg_word: {<2>} ) ] spids: [846 859] ) ] else_action: [] redirects: [] ) ] spids: [826 827 876 -1] ) (case_arm pat_list: [{(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\?'> ch:'?')}] action: [ (C {<echo>} {($ Id.VSub_DollarName USAGE)}) (command.ControlFlow token: <Id.ControlFlow_Exit exit> arg_word: {<2>} ) ] spids: [879 880 890 -1] ) ] redirects: [] ) ] ) redirects: [] ) (C {<shift>} { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<expr>} {($ Id.VSub_DollarName OPTIND)} {<->} {<1>}) right: <Id.Backtick_Right '`'> ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'D0='> name:D0) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<pwd>}) right: <Id.Backtick_Right '`'> ) } spids: [914] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'D1='> name:D1) op: assign_op.Equal rhs: {($ Id.VSub_Number 1)} spids: [921] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'D2='> name:D2) op: assign_op.Equal rhs: {($ Id.VSub_Number 2)} spids: [924] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {($ Id.VSub_Pound '#')} {<-lt>} {<2>} {<Id.Lit_RBracket ']'>}) ] ) action: [ (C {<echo>} {($ Id.VSub_DollarName USAGE)}) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] spids: [927 939] ) (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-d>} {(DQ ($ Id.VSub_DollarName D1))} {<Id.Lit_RBracket ']'>} ) ] ) action: [ (C {<echo>} {($ Id.VSub_DollarName D1)} {<not>} {<a>} {<directory>} {<Id.KW_Bang '!'>}) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<2>}) ] spids: [950 964] ) (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-d>} {(DQ ($ Id.VSub_DollarName D2))} {<Id.Lit_RBracket ']'>} ) ] ) action: [ (C {<echo>} {($ Id.VSub_DollarName D2)} {<not>} {<a>} {<directory>} {<Id.KW_Bang '!'>}) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<2>}) ] spids: [983 997] ) ] else_action: [] redirects: [] ) (C {<cd>} {(DQ ($ Id.VSub_DollarName D1))}) (command.Pipeline children: [ (C {<find>} {<.>} {<-print>}) (command.Simple words: [{<sort>}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName TEMPDIR) <'/dc'> ($ Id.VSub_Dollar '$') <a>} ) ] more_env: [] do_fork: T ) ] negated: F stderr_indices: [] ) (C {<cd>} {(DQ ($ Id.VSub_DollarName D0))}) (C {<cd>} {(DQ ($ Id.VSub_DollarName D2))}) (command.Pipeline children: [ (C {<find>} {<.>} {<-print>}) (command.Simple words: [{<sort>}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName TEMPDIR) <'/dc'> ($ Id.VSub_Dollar '$') <b>} ) ] more_env: [] do_fork: T ) ] negated: F stderr_indices: [] ) (command.Pipeline children: [ (C {<comm>} {($ Id.VSub_DollarName TEMPDIR) <'/dc'> ($ Id.VSub_Dollar '$') <a>} {($ Id.VSub_DollarName TEMPDIR) <'/dc'> ($ Id.VSub_Dollar '$') <b>} ) (C {<sed>} {<-n>} {<-e>} {(DQ <'/^\t\t/w '> ($ Id.VSub_DollarName TEMPDIR) <'/dc'> ($ Id.VSub_Dollar '$') <c>)} {<-e>} {(DQ <'/^\t[^\t]/w '> ($ Id.VSub_DollarName TEMPDIR) <'/dc'> ($ Id.VSub_Dollar '$') <d>)} {<-e>} {(DQ <'/^[^\t]/w '> ($ Id.VSub_DollarName TEMPDIR) <'/dc'> ($ Id.VSub_Dollar '$') <e>)} ) ] negated: F stderr_indices: [] ) (C {<rm>} {<-f>} {($ Id.VSub_DollarName TEMPDIR) <'/dc'> ($ Id.VSub_Dollar '$') <a>} {($ Id.VSub_DollarName TEMPDIR) <'/dc'> ($ Id.VSub_Dollar '$') <b>} ) (C {<pr>} {<-w> (${ Id.VSub_Name width)} {<-h>} {(DQ ($ Id.VSub_DollarName D1) <' only and '> ($ Id.VSub_DollarName D2) <' only'>)} {<-m>} {($ Id.VSub_DollarName TEMPDIR) <'/dc'> ($ Id.VSub_Dollar '$') <e>} {($ Id.VSub_DollarName TEMPDIR) <'/dc'> ($ Id.VSub_Dollar '$') <d>} ) (C {<rm>} {<-f>} {($ Id.VSub_DollarName TEMPDIR) <'/dc'> ($ Id.VSub_Dollar '$') <e>} {($ Id.VSub_DollarName TEMPDIR) <'/dc'> ($ Id.VSub_Dollar '$') <d>} ) (command.Simple words: [{<sed>} {<-e>} {(SQ <'s/..//'>)} {<-e>} {(SQ <'s/\\([^-a-zA-Z0-9/_.]\\)/\\\\\\1/g'>)}] redirects: [ (redir op: <Id.Redir_Less '<'> loc: (redir_loc.Fd fd:0) arg: {($ Id.VSub_DollarName TEMPDIR) <'/dc'> ($ Id.VSub_Dollar '$') <c>} ) (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName TEMPDIR) <'/dc'> ($ Id.VSub_Dollar '$') <f>} ) ] more_env: [] do_fork: T ) (command.Pipeline children: [ (C {<cat>} {($ Id.VSub_DollarName TEMPDIR) <'/dc'> ($ Id.VSub_Dollar '$') <f>}) (C {<xargs>} {<ls>} {<-lLgnd>}) (command.Simple words: [{<sed>} {<-e>} {(SQ <'/^[bc]/ s/, *//'>)} {<-e>} {(SQ <'/^l/ s/ -> .*//'>)}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName TEMPDIR) <'/dc'> ($ Id.VSub_Dollar '$') <i>} ) (redir op:<Id.Redir_Great '2>'> loc:(redir_loc.Fd fd:2) arg:{<'/dev/null'>}) ] more_env: [] do_fork: T ) ] negated: F stderr_indices: [] ) (C {<cd>} {(DQ ($ Id.VSub_DollarName D0))}) (C {<cd>} {(DQ ($ Id.VSub_DollarName D1))}) (command.Pipeline children: [ (C {<cat>} {($ Id.VSub_DollarName TEMPDIR) <'/dc'> ($ Id.VSub_Dollar '$') <f>}) (C {<xargs>} {<ls>} {<-lLgnd>}) (command.Simple words: [{<sed>} {<-e>} {(SQ <'/^[bc]/ s/, *//'>)} {<-e>} {(SQ <'/^l/ s/ -> .*//'>)}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName TEMPDIR) <'/dc'> ($ Id.VSub_Dollar '$') <h>} ) (redir op:<Id.Redir_Great '2>'> loc:(redir_loc.Fd fd:2) arg:{<'/dev/null'>}) ] more_env: [] do_fork: T ) ] negated: F stderr_indices: [] ) (C {<cd>} {(DQ ($ Id.VSub_DollarName D0))}) (command.Simple words: [] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName TEMPDIR) <'/dc'> ($ Id.VSub_Dollar '$') <g>} ) ] more_env: [] do_fork: F ) (command.Pipeline children: [ (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<read>} {<-u3>} {<tmp>} {<tmp>} {<tmp>} {<fsize1>} {<tmp>} {<tmp>} {<tmp>} {<a>}) (C {<read>} {<-u4>} {<tmp>} {<tmp>} {<tmp>} {<fsize2>} {<tmp>} {<tmp>} {<tmp>} {<b>}) ] ) terminator: <Id.Op_Semi _> ) ] ) body: (command.DoGroup children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobNEqual left: {(DQ ($ Id.VSub_DollarName a))} right: {(DQ ($ Id.VSub_DollarName b))} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.Op_Less left: {(DQ ($ Id.VSub_DollarName a))} right: {(DQ ($ Id.VSub_DollarName b))} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) body: (command.DoGroup children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.DParen child: (arith_expr.Binary op_id: Id.Arith_NEqual left: ($ Id.Lit_ArithVarLike Sflag) right: {<Id.Lit_Digits 1>} ) redirects: [] ) ] ) action: [ (C {<echo>} {(DQ <'different\t'> ($ Id.VSub_DollarName a))}) (C {<dodiffs>}) ] spids: [1501 1515] ) ] else_action: [] redirects: [] ) (C {<read>} {<-u3>} {<tmp>} {<tmp>} {<tmp>} {<fsize1>} {<tmp>} {<tmp>} {<tmp>} {<a>} ) ] ) redirects: [] ) (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.Op_Great left: {(DQ ($ Id.VSub_DollarName a))} right: {(DQ ($ Id.VSub_DollarName b))} ) redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) body: (command.DoGroup children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.DParen child: (arith_expr.Binary op_id: Id.Arith_NEqual left: ($ Id.Lit_ArithVarLike Sflag) right: {<Id.Lit_Digits 1>} ) redirects: [] ) ] ) action: [ (C {<echo>} {(DQ <'different\t'> ($ Id.VSub_DollarName b))}) (C {<dodiffs>}) ] spids: [1575 1589] ) ] else_action: [] redirects: [] ) (C {<read>} {<-u4>} {<tmp>} {<tmp>} {<tmp>} {<fsize2>} {<tmp>} {<tmp>} {<tmp>} {<b>} ) ] ) redirects: [] ) ] spids: [1461 1478] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'cmpdiff='> name:cmpdiff) op: assign_op.Equal rhs: {<0>} spids: [1632] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'sizediff='> name:sizediff) op: assign_op.Equal rhs: {<0>} spids: [1636] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {<-d>} {(DQ ($ Id.VSub_DollarName D1)) <'/'> (DQ ($ Id.VSub_DollarName a))} {<Id.Lit_RBracket ']'>} ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.DParen child: (arith_expr.Binary op_id: Id.Arith_NEqual left: ($ Id.Lit_ArithVarLike Sflag) right: {<Id.Lit_Digits 1>} ) redirects: [] ) ] ) action: [(C {<echo>} {(DQ <'directory\t'> ($ Id.VSub_DollarName a))})] spids: [1659 1673] ) ] else_action: [] redirects: [] ) ] spids: [1640 1657] ) (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {<-f>} {(DQ ($ Id.VSub_DollarName D1)) <'/'> (DQ ($ Id.VSub_DollarName a))} {<Id.Lit_RBracket ']'>} ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.DParen child: (arith_expr.Binary op_id: Id.Arith_NEqual left: ($ Id.Lit_ArithVarLike fsize1) right: ($ Id.Lit_ArithVarLike fsize2) ) redirects: [] ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'sizediff='> name: sizediff ) op: assign_op.Equal rhs: {<1>} spids: [1744] ) ] redirects: [] ) ] spids: [1727 1741] ) ] else_action: [ (C {<cmp>} {<-s>} {(DQ ($ Id.VSub_DollarName D1)) <'/'> (DQ ($ Id.VSub_DollarName a))} {(DQ ($ Id.VSub_DollarName D2)) <'/'> (DQ ($ Id.VSub_DollarName a))} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'cmpdiff='> name: cmpdiff ) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} spids: [1772] ) ] redirects: [] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DAmp left: (arith_expr.Binary op_id: Id.Arith_DEqual left: ($ Id.Lit_ArithVarLike sizediff) right: {<Id.Lit_Digits 0>} ) right: (arith_expr.Binary op_id: Id.Arith_DEqual left: ($ Id.Lit_ArithVarLike cmpdiff) right: {<Id.Lit_Digits 0>} ) ) redirects: [] ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.DParen child: (arith_expr.Binary op_id: Id.Arith_NEqual left: ($ Id.Lit_ArithVarLike Sflag) right: {<Id.Lit_Digits 1>} ) redirects: [] ) ] ) action: [ (C {<echo>} {(DQ <'same \t'> ($ Id.VSub_DollarName a))}) ] spids: [1803 1817] ) ] else_action: [] redirects: [] ) ] spids: [1779 1801] ) ] else_action: [ (C {<echo>} {(DQ <'different\t'> ($ Id.VSub_DollarName a))}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: ($ Id.Lit_ArithVarLike Dflag) right: {<Id.Lit_Digits 1>} ) redirects: [] ) ] ) action: [(C {<dodiffs>})] spids: [1840 1854] ) ] else_action: [] redirects: [] ) ] redirects: [] ) ] spids: [1686 1703] ) (if_arm cond: (condition.Shell commands: [ (command.DParen child: (arith_expr.Binary op_id: Id.Arith_NEqual left: ($ Id.Lit_ArithVarLike Sflag) right: {<Id.Lit_Digits 1>} ) redirects: [] ) ] ) action: [(C {<echo>} {(DQ <'special \t'> ($ Id.VSub_DollarName a))})] spids: [1866 1880] ) ] else_action: [] redirects: [] ) ] ) redirects: [ (redir op: <Id.Redir_Less '3<'> loc: (redir_loc.Fd fd:3) arg: {($ Id.VSub_DollarName TEMPDIR) <'/dc'> ($ Id.VSub_Dollar '$') <h>} ) (redir op: <Id.Redir_Less '4<'> loc: (redir_loc.Fd fd:4) arg: {($ Id.VSub_DollarName TEMPDIR) <'/dc'> ($ Id.VSub_Dollar '$') <i>} ) ] ) (C {<pr>} {<-r>} {<-h>} {(DQ <'Comparison of '> ($ Id.VSub_DollarName D1) <' '> ($ Id.VSub_DollarName D2))} ) ] negated: F stderr_indices: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.DParen child: (arith_expr.Binary op_id: Id.Arith_DEqual left: ($ Id.Lit_ArithVarLike Dflag) right: {<Id.Lit_Digits 1>} ) redirects: [] ) ] ) action: [(C {<cat>} {($ Id.VSub_DollarName TEMPDIR) <'/dc'> ($ Id.VSub_Dollar '$') <g>})] spids: [1921 1934] ) ] else_action: [] redirects: [] ) (command.ControlFlow token: <Id.ControlFlow_Exit exit> arg_word: {($ Id.VSub_DollarName exitstat)} ) ] )