(command.CommandList children: [ (C {<Id.KW_Set set>} {<-o>} {<nounset>}) (C {<Id.KW_Set set>} {<-o>} {<pipefail>}) (C {<Id.KW_Set set>} {<-o>} {<errexit>}) (command.ShFunction name: deps body: (BraceGroup children: [(C {<sudo>} {<apt>} {<install>} {<systemtap>} {<systemtap-sdt-dev>})] ) ) (command.ShFunction name: stap-deps body: (BraceGroup children:[(C {<sudo>} {<apt>} {<install>} {<libdw-dev>} {<libdw1>})]) ) (command.ShFunction name: download body: (BraceGroup children: [ (C {<wget>} {<--no-clobber>} {<--directory>} {<_tmp>} {<https> <Id.Lit_Colon ':'> <'//sourceware.org/systemtap/ftp/releases/systemtap-3.1.tar.gz'> } ) ] ) ) (command.ShFunction name: extract body: (BraceGroup children: [ (C {<cd>} {<_tmp>}) (command.Simple words: [{<tar>} {<-x>} {<-z>}] redirects: [ (redir op: <Id.Redir_Less '<'> loc: (redir_loc.Fd fd:0) arg: {<systemtap-3.1.tar.gz>} ) ] do_fork: T ) ] ) ) (C {<readonly>} {<Id.Lit_VarLike 'PY36='> <Id.Lit_TildeLike '~'> <'/src/languages/Python-3.6.1'>}) (command.ShFunction name: build-python body: (BraceGroup children: [ (C {<pushd>} {($ Id.VSub_DollarName '$PY36')}) (C {<'./configure'>} {<--with-dtrace>}) (C {<make>} {<-j>} {<7>}) (C {<popd>}) ] ) ) (command.ShFunction name: elf body: (BraceGroup children: [ (C {<readelf>} {<-n>} {(command_sub left_token:<Id.Left_DollarParen '$('> child:(C {<which>} {<python3>}))} ) (C {<echo>} {<--->}) (C {<readelf>} {<-n>} {($ Id.VSub_DollarName '$PY36') <'/python'>}) ] ) ) (command.ShFunction name: _demo body: (BraceGroup children: [ (C {<local>} {<Id.Lit_VarLike 'stp='> (DQ ($ Id.VSub_DollarName '$PY36') <'/Lib/test/dtracedata/gc.stp'>) } ) (C {<local>} {<Id.Lit_VarLike 'py='> (DQ ($ Id.VSub_DollarName '$PWD') <'/test/sh_spec.py'>)} ) (C {<pushd>} {($ Id.VSub_DollarName '$PY36')}) (C {<stap>} {<-v>} {($ Id.VSub_DollarName '$stp')} {<-c>} {(DQ <'./python '> ($ Id.VSub_DollarName '$py'))} ) (C {<popd>}) ] ) ) (command.ShFunction name: demo body: (BraceGroup children: [ (command.Sentence child: (C {<sudo>} {($ Id.VSub_Number '$0')} {<_demo>}) terminator: <Id.Op_Semi _> ) ] ) ) (C {(DQ ($ Id.VSub_At '$@'))}) ] )