(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)}) ] )