(CommandList
  children: [
    (C {(mkdir)} {(service)} {(svc0)} {(svc1)} {(svc2)} {(svc2/log)})
    (SimpleCommand
      words: [{(catexe)} {(svc0/run)}]
      redirects: [
        (HereDoc
          op_id: Redir_DLess
          fd: -1
          body: {(DQ ('#!/bin/sh\n') ('echo svc0 ran >> output\n'))}
          do_expansion: True
          here_end: EOF
          was_filled: True
          spids: [20]
        )
      ]
    )
    (SimpleCommand
      words: [{(catexe)} {(svc1/run)}]
      redirects: [
        (HereDoc
          op_id: Redir_DLess
          fd: -1
          body: {(DQ ('#!/bin/sh\n') ('echo svc1 ran\n'))}
          do_expansion: True
          here_end: EOF
          was_filled: True
          spids: [30]
        )
      ]
    )
    (SimpleCommand
      words: [{(catexe)} {(svc1/log)}]
      redirects: [
        (HereDoc
          op_id: Redir_DLess
          fd: -1
          body: {(DQ ('#!/bin/sh\n') ('exec cat > output\n'))}
          do_expansion: True
          here_end: EOF
          was_filled: True
          spids: [40]
        )
      ]
    )
    (SimpleCommand
      words: [{(catexe)} {(svc2/run)}]
      redirects: [
        (HereDoc
          op_id: Redir_DLess
          fd: -1
          body: {(DQ ('#!/bin/sh\n') ('echo svc2 ran\n'))}
          do_expansion: True
          here_end: EOF
          was_filled: True
          spids: [50]
        )
      ]
    )
    (SimpleCommand
      words: [{(catexe)} {(svc2/log/run)}]
      redirects: [
        (HereDoc
          op_id: Redir_DLess
          fd: -1
          body: {(DQ ('#!/bin/sh\n') ('exec cat > ../output\n'))}
          do_expansion: True
          here_end: EOF
          was_filled: True
          spids: [60]
        )
      ]
    )
    (C {(ln)} {(-s)} 
      {
        (CommandSubPart
          command_list: (CommandList children:[(C {(pwd)})])
          left_token: <Left_Backtick '`'>
          spids: [70 72]
        ) (/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: [83 85]
              ) (/service)
            }
          ]
          redirects: [
            (Redir op_id:Redir_Great fd:-1 arg_word:{(svscan.log)} spids:[88])
            (Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[91])
          ]
        )
      terminator: <Op_Amp '&'>
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:svscanpid) op:Equal rhs:{($ VSub_Bang '$!')} spids:[96])]
      spids: [96]
    )
    (Until
      cond: [
        (AndOr
          children: [
            (C {(svok)} {(svc0)})
            (AndOr
              children: [
                (C {(svok)} {(svc1)})
                (AndOr
                  children: [(C {(svok)} {(svc2)}) (C {(svok)} {(svc2/log)})]
                  op_id: Op_DAmp
                )
              ]
              op_id: Op_DAmp
            )
          ]
          op_id: Op_DAmp
        )
      ]
      body: (DoGroup children:[(C {(sleep)} {(1)})] spids:[124131])
    )
    (C {(kill)} {($ VSub_Name '$svscanpid')})
    (SimpleCommand
      words: [{(wait)}]
      redirects: [
        (Redir op_id:Redir_Great fd:-1 arg_word:{(/dev/null)} spids:[143])
        (Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[146])
      ]
    )
    (C {(svc)} {(-dx)} {(svc) (Lit_Other '[') (0-9) (Lit_Other ']')} {(svc2/log)})
    (While
      cond: [
        (AndOr
          children: [
            (C {(svok)} {(svc0)})
            (AndOr
              children: [
                (C {(svok)} {(svc1)})
                (AndOr
                  children: [(C {(svok)} {(svc2)}) (C {(svok)} {(svc2/log)})]
                  op_id: Op_DPipe
                )
              ]
              op_id: Op_DPipe
            )
          ]
          op_id: Op_DPipe
        )
      ]
      body: (DoGroup children:[(C {(sleep)} {(1)})] spids:[185192])
    )
    (C {(head)} {(-n)} {(1)} {(svc) (Lit_Other '[') (0-9) (Lit_Other ']') (/output)})
    (C {(cat)} {(svscan.log)})
    (C {(rm)} {(-r)} {(svc0)} {(svc1)} {(svc2)} {(service)})
  ]
)