(command.CommandList
  children: [
    (command.Simple
      blame_tok: <set>
      more_env: []
      words: [{<set>} {<-o>} {<nounset>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <set>
      more_env: []
      words: [{<set>} {<-o>} {<pipefail>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <set>
      more_env: []
      words: [{<set>} {<-o>} {<errexit>}]
      redirects: []
      do_fork: T
    )
    (command.ShFunction
      name_tok: <count-procs>
      name: count-procs
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [{<local>} {<Id.Lit_VarLike 'sh='> ($ Id.VSub_Number 1)}]
              redirects: []
              do_fork: T
            )
            (command.Simple
              blame_tok: <local>
              more_env: []
              words: [{<local>} {<Id.Lit_VarLike 'code='> ($ Id.VSub_Number 2)}]
              redirects: []
              do_fork: T
            )
            (command.ShAssignment
              left: <Id.Lit_VarLike 'code='>
              pairs: [
                (AssignPair
                  left: <Id.Lit_VarLike 'code='>
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'code='> name:code)
                  op: assign_op.Equal
                  rhs: {(SQ <'echo "[pid-of-sh $$]";'>) (DQ <' '> ($ Id.VSub_DollarName code))}
                )
              ]
              redirects: []
            )
            (command.AndOr
              children: [
                (command.Pipeline
                  children: [
                    (command.Simple
                      blame_tok: <strace>
                      more_env: []
                      words: [
                        {<strace>}
                        {<-e>}
                        {(SQ <'trace=fork,execve'>)}
                        {<-e>}
                        {(SQ <'signal=none'>)}
                        {<-e>}
                        {(SQ <'verbose=none'>)}
                        {<-ff>}
                        {<-->}
                        {($ Id.VSub_DollarName sh)}
                        {<-c>}
                        {(DQ ($ Id.VSub_DollarName code))}
                      ]
                      redirects: [
                        (Redir
                          op: <Id.Redir_GreatAnd '2>&'>
                          loc: (redir_loc.Fd fd:2)
                          arg: {<1>}
                        )
                      ]
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <fgrep>
                      more_env: []
                      words: [{<fgrep>} {(SQ <'[pid'>)}]
                      redirects: []
                      do_fork: T
                    )
                  ]
                  ops: [<Id.Op_Pipe _>]
                )
                (command.Simple
                  blame_tok: <true>
                  more_env: []
                  words: [{<true>}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DPipe _>]
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <test-many>
      name: test-many
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.ForEach
              keyword: <Id.KW_For for>
              iter_names: [code]
              iterable: (for_iter.Words words:[{(DQ ($ Id.VSub_At '@'))}])
              semi_tok: <Id.Op_Semi _>
              body: 
                (command.DoGroup
                  left: <Id.KW_Do do>
                  children: [
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [{<echo>}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [{<echo>}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [{<echo>} {(DQ <'--- '> ($ Id.VSub_DollarName code) <' ---'>)}]
                      redirects: []
                      do_fork: T
                    )
                    (command.Simple
                      blame_tok: <echo>
                      more_env: []
                      words: [{<echo>}]
                      redirects: []
                      do_fork: T
                    )
                    (command.ForEach
                      keyword: <Id.KW_For for>
                      iter_names: [sh]
                      iterable: (for_iter.Words words:[{<dash>} {<bash>} {<mksh>} {<zsh>}])
                      semi_tok: <Id.Op_Semi _>
                      body: 
                        (command.DoGroup
                          left: <Id.KW_Do do>
                          children: [
                            (command.Simple
                              blame_tok: <echo>
                              more_env: []
                              words: [{<echo>}]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <echo>
                              more_env: []
                              words: [{<echo>}]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <echo>
                              more_env: []
                              words: [{<echo>} {(DQ <'--- '> ($ Id.VSub_DollarName sh) <' ---'>)}]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <echo>
                              more_env: []
                              words: [{<echo>}]
                              redirects: []
                              do_fork: T
                            )
                            (command.Simple
                              blame_tok: <count-procs>
                              more_env: []
                              words: [
                                {<count-procs>}
                                {($ Id.VSub_DollarName sh)}
                                {(DQ ($ Id.VSub_DollarName code))}
                              ]
                              redirects: []
                              do_fork: T
                            )
                          ]
                          right: <Id.KW_Done done>
                        )
                      redirects: []
                    )
                  ]
                  right: <Id.KW_Done done>
                )
              redirects: []
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.ShFunction
      name_tok: <t1>
      name: t1
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.Simple
              blame_tok: <test-many>
              more_env: []
              words: [
                {<test-many>}
                {(SQ <'echo hi'>)}
                {(SQ <'/bin/echo one; /bin/echo two'>)}
                {(SQ <'{ /bin/echo one; /bin/echo two; }'>)}
                {(SQ <'{ echo one; echo two; } | wc -l'>)}
                {(SQ <'( echo one; echo two ) | wc -l'>)}
              ]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.Simple
      blame_tok: <Id.Left_DoubleQuote '"'>
      more_env: []
      words: [{(DQ ($ Id.VSub_At '@'))}]
      redirects: []
      do_fork: T
    )
  ]
)