(CommandList
  children: [
    (C {(mkdir)} {(service)} {(svc0)} {(svc1)} {(svc2)} {(svc2/log)})
    (SimpleCommand
      words: [{(catexe)} {(svc0/run)}]
      redirects: [
        (HereDoc
          op: <Redir_DLess '<<'>
          fd: 16777215
          here_begin: {(EOF)}
          here_end_span_id: 26
          stdin_parts: [('#!/bin/sh\n') ('echo svc0 ran >> output\n')]
        )
      ]
    )
    (SimpleCommand
      words: [{(catexe)} {(svc1/run)}]
      redirects: [
        (HereDoc
          op: <Redir_DLess '<<'>
          fd: 16777215
          here_begin: {(EOF)}
          here_end_span_id: 38
          stdin_parts: [('#!/bin/sh\n') ('echo svc1 ran\n')]
        )
      ]
    )
    (SimpleCommand
      words: [{(catexe)} {(svc1/log)}]
      redirects: [
        (HereDoc
          op: <Redir_DLess '<<'>
          fd: 16777215
          here_begin: {(EOF)}
          here_end_span_id: 50
          stdin_parts: [('#!/bin/sh\n') ('exec cat > output\n')]
        )
      ]
    )
    (SimpleCommand
      words: [{(catexe)} {(svc2/run)}]
      redirects: [
        (HereDoc
          op: <Redir_DLess '<<'>
          fd: 16777215
          here_begin: {(EOF)}
          here_end_span_id: 62
          stdin_parts: [('#!/bin/sh\n') ('echo svc2 ran\n')]
        )
      ]
    )
    (SimpleCommand
      words: [{(catexe)} {(svc2/log/run)}]
      redirects: [
        (HereDoc
          op: <Redir_DLess '<<'>
          fd: 16777215
          here_begin: {(EOF)}
          here_end_span_id: 74
          stdin_parts: [('#!/bin/sh\n') ('exec cat > ../output\n')]
        )
      ]
    )
    (C {(ln)} {(-s)} 
      {
        (CommandSubPart
          command_list: (CommandList children:[(C {(pwd)})])
          left_token: <Left_Backtick '`'>
          spids: [80 82]
        ) (/svc) (Lit_Other '[') (0-9) (Lit_Other ']')
      } {(service/)}
    )
    (Sentence
      child: 
        (SimpleCommand
          words: [
            {(svscan)}
            {
              (CommandSubPart
                command_list: (CommandList children:[(C {(pwd)})])
                left_token: <Left_Backtick '`'>
                spids: [93 95]
              ) (/service)
            }
          ]
          redirects: [
            (Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(svscan.log)})
            (Redir op:<Redir_GreatAnd '2>&'> fd:2 arg_word:{(1)})
          ]
        )
      terminator: <Op_Amp '&'>
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:svscanpid)
          op: Equal
          rhs: {($ VSub_Bang '$!')}
          spids: [106]
        )
      ]
      spids: [106]
    )
    (WhileUntil
      keyword: <KW_Until until>
      cond: [
        (AndOr
          ops: [Op_DAmp Op_DAmp Op_DAmp]
          children: [
            (C {(svok)} {(svc0)})
            (C {(svok)} {(svc1)})
            (C {(svok)} {(svc2)})
            (C {(svok)} {(svc2/log)})
          ]
        )
      ]
      body: (DoGroup children:[(C {(sleep)} {(1)})] spids:[134 141])
    )
    (C {(kill)} {($ VSub_Name '$svscanpid')})
    (SimpleCommand
      words: [{(wait)}]
      redirects: [
        (Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(/dev/null)})
        (Redir op:<Redir_GreatAnd '2>&'> fd:2 arg_word:{(1)})
      ]
    )
    (C {(svc)} {(-dx)} {(svc) (Lit_Other '[') (0-9) (Lit_Other ']')} {(svc2/log)})
    (WhileUntil
      keyword: <KW_While while>
      cond: [
        (AndOr
          ops: [Op_DPipe Op_DPipe Op_DPipe]
          children: [
            (C {(svok)} {(svc0)})
            (C {(svok)} {(svc1)})
            (C {(svok)} {(svc2)})
            (C {(svok)} {(svc2/log)})
          ]
        )
      ]
      body: (DoGroup children:[(C {(sleep)} {(1)})] spids:[195 202])
    )
    (C {(head)} {(-n)} {(1)} {(svc) (Lit_Other '[') (0-9) (Lit_Other ']') (/output)})
    (C {(cat)} {(svscan.log)})
    (C {(rm)} {(-r)} {(svc0)} {(svc1)} {(svc2)} {(service)})
  ]
)