(CommandList children: [ (C {(mkdir)} {(service)} {(svc0)} {(svc1)} {(svc2)} {(svc2/log)}) (SimpleCommand words: [{(catexe)} {(svc0/run)}] redirects: [ (HereDoc op_id: Redir_DLess fd: 16777215 body: {(DQ ('#!/bin/sh\n') ('echo svc0 ran >> output\n'))} do_expansion: True here_end: EOF was_filled: T spids: [20] ) ] ) (SimpleCommand words: [{(catexe)} {(svc1/run)}] redirects: [ (HereDoc op_id: Redir_DLess fd: 16777215 body: {(DQ ('#!/bin/sh\n') ('echo svc1 ran\n'))} do_expansion: True here_end: EOF was_filled: T spids: [31] ) ] ) (SimpleCommand words: [{(catexe)} {(svc1/log)}] redirects: [ (HereDoc op_id: Redir_DLess fd: 16777215 body: {(DQ ('#!/bin/sh\n') ('exec cat > output\n'))} do_expansion: True here_end: EOF was_filled: T spids: [42] ) ] ) (SimpleCommand words: [{(catexe)} {(svc2/run)}] redirects: [ (HereDoc op_id: Redir_DLess fd: 16777215 body: {(DQ ('#!/bin/sh\n') ('echo svc2 ran\n'))} do_expansion: True here_end: EOF was_filled: T spids: [53] ) ] ) (SimpleCommand words: [{(catexe)} {(svc2/log/run)}] redirects: [ (HereDoc op_id: Redir_DLess fd: 16777215 body: {(DQ ('#!/bin/sh\n') ('exec cat > ../output\n'))} do_expansion: True here_end: EOF was_filled: T spids: [64] ) ] ) (C {(ln)} {(-s)} { (CommandSubPart command_list: (CommandList children:[(C {(pwd)})]) left_token: <Left_Backtick '`'> spids: [75 77] ) (/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: [88 90] ) (/service) } ] redirects: [ (Redir op_id:Redir_Great fd:16777215 arg_word:{(svscan.log)} spids:[93]) (Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[96]) ] ) terminator: <Op_Amp '&'> ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:svscanpid) op: Equal rhs: {($ VSub_Bang '$!')} spids: [101] ) ] spids: [101] ) (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:[129 136]) ) (C {(kill)} {($ VSub_Name '$svscanpid')}) (SimpleCommand words: [{(wait)}] redirects: [ (Redir op_id:Redir_Great fd:16777215 arg_word:{(/dev/null)} spids:[148]) (Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[151]) ] ) (C {(svc)} {(-dx)} {(svc) (Lit_Other '[') (0-9) (Lit_Other ']')} {(svc2/log)}) (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:[190 197]) ) (C {(head)} {(-n)} {(1)} {(svc) (Lit_Other '[') (0-9) (Lit_Other ']') (/output)}) (C {(cat)} {(svscan.log)}) (C {(rm)} {(-r)} {(svc0)} {(svc1)} {(svc2)} {(service)}) ] )