(List (Com {[LIT_CHARS mkdir]} {[LIT_CHARS service]} {[LIT_CHARS svc0]} {[LIT_CHARS svc1]} {[LIT_CHARS svc2]} {[LIT_CHARS svc2/log]} ) (Com {[LIT_CHARS catexe]} {[LIT_CHARS svc0/run]} < (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "#!/bin/sh\n"][LIT_CHARS "echo svc0 ran >> output\n"]]} 0), > ) (Com {[LIT_CHARS catexe]} {[LIT_CHARS svc1/run]} < (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "#!/bin/sh\n"][LIT_CHARS "echo svc1 ran\n"]]} 0), > ) (Com {[LIT_CHARS catexe]} {[LIT_CHARS svc1/log]} < (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "#!/bin/sh\n"][LIT_CHARS "cat > output\n"]]} 0), > ) (Com {[LIT_CHARS catexe]} {[LIT_CHARS svc2/run]} < (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "#!/bin/sh\n"][LIT_CHARS "echo svc2 ran\n"]]} 0), > ) (Com {[LIT_CHARS catexe]} {[LIT_CHARS svc2/log/run]} < (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "#!/bin/sh\n"][LIT_CHARS "cat > ../output\n"]]} 0), > ) (Com {[LIT_CHARS ln]} {[LIT_CHARS -s]} {[ComSub (Com {[LIT_CHARS pwd]})] [LIT_CHARS /svc] [LIT_DBRACKET_LIKE "["] [LIT_CHARS 0-9] [LIT_DBRACKET_LIKE "]"]} {[LIT_CHARS service/]} ) (Fork (Com {[LIT_CHARS svscan]} {[ComSub (Com {[LIT_CHARS pwd]})] [LIT_CHARS /service]} < (FilenameRedirectNode filename={[LIT_CHARS svscan.log]} "> 1), (DescriptorRedirectNode target={[LIT_CHARS 1]} &"> 2), > ) ) (= scope= flags=0 words=[] bindings=[('svscanpid', {[VarSub !]})]) (While (AndOr OP_AND_IF (Com {[LIT_CHARS svok]} {[LIT_CHARS svc0]} ) (AndOr OP_AND_IF (Com {[LIT_CHARS svok]} {[LIT_CHARS svc1]} ) (AndOr OP_AND_IF (Com {[LIT_CHARS svok]} {[LIT_CHARS svc2]} ) (Com {[LIT_CHARS svok]} {[LIT_CHARS svc2/log]} ) ) ) ) (Com {[LIT_CHARS sleep]} {[LIT_CHARS 1]} ) ) (Com {[LIT_CHARS kill]} {[VarSub svscanpid]} ) (Com {[LIT_CHARS wait]} < (FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 1), (DescriptorRedirectNode target={[LIT_CHARS 1]} &"> 2), > ) (Com {[LIT_CHARS svc]} {[LIT_CHARS -dx]} {[LIT_CHARS svc] [LIT_DBRACKET_LIKE "["] [LIT_CHARS 0-9] [LIT_DBRACKET_LIKE "]"]} {[LIT_CHARS svc2/log]} ) (While (AndOr OP_AND_IF (Pipeline! (Com {[LIT_CHARS svok]} {[LIT_CHARS svc0]} ) ) (AndOr OP_AND_IF (Pipeline! (Com {[LIT_CHARS svok]} {[LIT_CHARS svc1]} ) ) (AndOr OP_AND_IF (Pipeline! (Com {[LIT_CHARS svok]} {[LIT_CHARS svc2]} ) ) (Pipeline! (Com {[LIT_CHARS svok]} {[LIT_CHARS svc2/log]} ) ) ) ) ) (Com {[LIT_CHARS sleep]} {[LIT_CHARS 1]} ) ) (Com {[LIT_CHARS head]} {[LIT_CHARS -n]} {[LIT_CHARS 1]} {[LIT_CHARS svc] [LIT_DBRACKET_LIKE "["] [LIT_CHARS 0-9] [LIT_DBRACKET_LIKE "]"] [LIT_CHARS /output]} ) (Com {[LIT_CHARS cat]} {[LIT_CHARS svscan.log]} ) (Com {[LIT_CHARS rm]} {[LIT_CHARS -r]} {[LIT_CHARS svc0]} {[LIT_CHARS svc1]} {[LIT_CHARS svc2]} {[LIT_CHARS service]} ) )