(command.CommandList children: [ (command.AndOr children: [ (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [{<Id.Lit_LBracket '['>} {<-x>} {<'/usr/sbin/alsactl'>} {<Id.Lit_RBracket ']'>}] redirects: [] do_fork: T ) (command.ControlFlow keyword:<Id.ControlFlow_Exit exit> arg_word:{<0>}) ] ops: [<Id.Op_DPipe _>] ) (command.ShAssignment left: <Id.Lit_VarLike 'PATH='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'PATH='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PATH='> name:PATH) op: assign_op.Equal rhs: {<'/usr/local/sbin'> <Id.Lit_Colon ':'> <'/usr/local/bin'> <Id.Lit_Colon ':'> <'/usr/sbin'> <Id.Lit_Colon ':'> <'/usr/bin'> <Id.Lit_Colon ':'> <'/sbin'> <Id.Lit_Colon ':'> <'/bin'> } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'MYNAME='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'MYNAME='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'MYNAME='> name:MYNAME) op: assign_op.Equal rhs: {<'/etc/init.d/alsa-utils'>} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'ALSACTLHOME='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'ALSACTLHOME='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ALSACTLHOME='> name:ALSACTLHOME) op: assign_op.Equal rhs: {<'/run/alsa'>} ) ] redirects: [] ) (command.AndOr children: [ (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<-d>} {(DQ ($ Id.VSub_DollarName ALSACTLHOME))} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <mkdir> more_env: [] words: [{<mkdir>} {<-p>} {(DQ ($ Id.VSub_DollarName ALSACTLHOME))}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) (command.Simple blame_tok: <.> more_env: [] words: [{<.>} {<'/lib/lsb/init-functions'>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <.> more_env: [] words: [{<.>} {<'/usr/share/alsa/utils.sh'>}] redirects: [] do_fork: T ) (command.ShFunction name_tok: <log_action_end_msg_and_exit> name: log_action_end_msg_and_exit body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <log_action_end_msg> more_env: [] words: [ {<log_action_end_msg>} {(DQ ($ Id.VSub_Number 1))} { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Number 2> var_name: 2 suffix_op: (suffix_op.Unary op: <Id.VTest_ColonPlus _> arg_word: {(DQ ($ Id.VSub_Number 2))} ) right: <Id.Right_DollarBrace '}'> ) } ] redirects: [] do_fork: T ) (command.ControlFlow keyword: <Id.ControlFlow_Exit exit> arg_word: {($ Id.VSub_Number 1)} ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <executable> name: executable body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.AndOr children: [ (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [{<Id.Lit_LBracket '['>} {<-x>} {<'/bin/which'>} {<Id.Lit_RBracket ']'>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [{<Id.Lit_LBracket '['>} {<-x>} {<'/usr/bin/which'>} {<Id.Lit_RBracket ']'>}] redirects: [] do_fork: T ) (command.ControlFlow keyword: <Id.ControlFlow_Return return> arg_word: {<1>} ) ] ops: [<Id.Op_DPipe _> <Id.Op_DPipe _>] ) (command.Simple blame_tok: <which> more_env: [] words: [{<which>} {(DQ ($ Id.VSub_Number 1))}] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) (Redir op:<Id.Redir_GreatAnd '2>&'> loc:(redir_loc.Fd fd:2) arg:{<1>}) ] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.AndOr children: [ (command.Simple blame_tok: <executable> more_env: [] words: [{<executable>} {<amixer>}] redirects: [] do_fork: T ) (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Sentence child: (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} {(DQ (${ Id.VSub_Name MYNAME) <': Error: No amixer program available.'>)} ] redirects: [(Redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] do_fork: T ) terminator: <Id.Op_Semi _> ) (command.Sentence child: (command.ControlFlow keyword:<Id.ControlFlow_Exit exit> arg_word:{<1>}) terminator: <Id.Op_Semi _> ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ] ops: [<Id.Op_DPipe _>] ) (command.ShFunction name_tok: <restore_levels> name: restore_levels body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.AndOr children: [ (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<-f>} {<'/var/lib/alsa/asound.state'>} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) (command.ControlFlow keyword: <Id.ControlFlow_Return return> arg_word: {<1>} ) ] ops: [<Id.Op_DPipe _>] ) (command.ShAssignment left: <Id.Lit_VarLike 'CARD='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'CARD='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CARD='> name:CARD) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_Number 1))} ) ] redirects: [] ) (command.AndOr children: [ (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_Number 1))} {<Id.Lit_Equals '='>} {<all>} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'CARD='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'CARD='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CARD='> name:CARD) op: assign_op.Equal rhs: {(DQ )} ) ] redirects: [] ) ] ops: [<Id.Op_DAmp _>] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.AndOr children: [ (command.ShAssignment left: <Id.Lit_VarLike 'MSG='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'MSG='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'MSG='> name:MSG) op: assign_op.Equal rhs: { (DQ (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <alsactl> more_env: [] words: [ {<alsactl>} {<-E>} {<Id.Lit_VarLike 'HOME='> (DQ ($ Id.VSub_DollarName ALSACTLHOME)) } {<restore>} {($ Id.VSub_DollarName CARD)} ] redirects: [ (Redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<1>} ) (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) ] do_fork: T ) right: <Id.Eof_RParen _> ) ) } ) ] redirects: [] ) (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {(DQ ($ Id.VSub_DollarName MSG))} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) ] ops: [<Id.Op_DAmp _>] ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [(command.ControlFlow keyword:<Id.ControlFlow_Return return> arg_word:{<0>})] spids: [324 364] ) ] else_kw: <Id.KW_Else else> else_action: [ (command.Simple blame_tok: <alsactl> more_env: [] words: [{<alsactl>} {<-F>} {<restore>} {($ Id.VSub_DollarName CARD)}] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) (Redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<1>} ) ] do_fork: T ) (command.Simple blame_tok: <log_action_cont_msg> more_env: [] words: [ {<log_action_cont_msg>} {(DQ <'warning: \'alsactl -E HOME='>) ($ Id.VSub_DollarName ALSACTLHOME) (DQ <' restore'> (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name CARD> var_name: CARD suffix_op: (suffix_op.Unary op: <Id.VTest_ColonPlus _> arg_word: {<' '> ($ Id.VSub_DollarName CARD)} ) right: <Id.Right_DollarBrace '}'> ) <'\' failed with error message \''> ($ Id.VSub_DollarName MSG) <'\''> ) } ] redirects: [] do_fork: T ) (command.ControlFlow keyword: <Id.ControlFlow_Return return> arg_word: {<1>} ) ] fi_kw: <Id.KW_Fi fi> redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <store_levels> name: store_levels body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment left: <Id.Lit_VarLike 'CARD='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'CARD='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CARD='> name:CARD) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_Number 1))} ) ] redirects: [] ) (command.AndOr children: [ (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_Number 1))} {<Id.Lit_Equals '='>} {<all>} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'CARD='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'CARD='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CARD='> name:CARD) op: assign_op.Equal rhs: {(DQ )} ) ] redirects: [] ) ] ops: [<Id.Op_DAmp _>] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.ShAssignment left: <Id.Lit_VarLike 'MSG='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'MSG='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'MSG='> name:MSG) op: assign_op.Equal rhs: { (DQ (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <alsactl> more_env: [] words: [ {<alsactl>} {<-E>} {<Id.Lit_VarLike 'HOME='> (DQ ($ Id.VSub_DollarName ALSACTLHOME)) } {<store>} {($ Id.VSub_DollarName CARD)} ] redirects: [ (Redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<1>} ) ] do_fork: T ) right: <Id.Eof_RParen _> ) ) } ) ] redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <sleep> more_env: [] words: [{<sleep>} {<1>}] redirects: [] do_fork: T ) (command.ControlFlow keyword: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] spids: [463 488] ) ] else_kw: <Id.KW_Else else> else_action: [ (command.Simple blame_tok: <log_action_cont_msg> more_env: [] words: [ {<log_action_cont_msg>} { (DQ <'warning: \'alsactl store'> (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name CARD> var_name: CARD suffix_op: (suffix_op.Unary op: <Id.VTest_ColonPlus _> arg_word: {<' '> ($ Id.VSub_DollarName CARD)} ) right: <Id.Right_DollarBrace '}'> ) <'\' failed with error message \''> ($ Id.VSub_DollarName MSG) <'\''> ) } ] redirects: [] do_fork: T ) (command.ControlFlow keyword: <Id.ControlFlow_Return return> arg_word: {<1>} ) ] fi_kw: <Id.KW_Fi fi> redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <mute_and_zero_levels_on_card> name: mute_and_zero_levels_on_card body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment left: <Id.Lit_VarLike 'CARDOPT='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'CARDOPT='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CARDOPT='> name:CARDOPT) op: assign_op.Equal rhs: {(DQ <'-c '> ($ Id.VSub_Number 1))} ) ] redirects: [] ) (command.ForEach keyword: <Id.KW_For for> iter_names: [CTL] iterable: (for_iter.Words words: [ {<Master>} {<PCM>} {<Synth>} {<CD>} {<Line>} {<Mic>} {(DQ <'PCM,1'>)} {<Wave>} {<Music>} {<AC97>} {(DQ <'Master Digital'>)} {<DAC>} {(DQ <'DAC,0'>)} {(DQ <'DAC,1'>)} {<Headphone>} {<Speaker>} {<Playback>} ] ) body: (command.DoGroup left: <Id.KW_Do do> children: [ (command.Simple blame_tok: <mute_and_zero_level> more_env: [] words: [{<mute_and_zero_level>} {(DQ ($ Id.VSub_DollarName CTL))}] redirects: [] do_fork: T ) ] right: <Id.KW_Done done> ) redirects: [] ) (command.ControlFlow keyword:<Id.ControlFlow_Return return> arg_word:{<0>}) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <mute_and_zero_levels> name: mute_and_zero_levels body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment left: <Id.Lit_VarLike 'TTZML_RETURNSTATUS='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'TTZML_RETURNSTATUS='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TTZML_RETURNSTATUS='> name: TTZML_RETURNSTATUS ) op: assign_op.Equal rhs: {<0>} ) ] redirects: [] ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{(DQ ($ Id.VSub_Number 1))}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <all> pattern: (pat.Words words:[{<all>}]) middle: <Id.Right_CasePat _> action: [ (command.ForEach keyword: <Id.KW_For for> iter_names: [CARD] iterable: (for_iter.Words words: [ { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <echo_card_indices> more_env: [] words: [{<echo_card_indices>}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ] ) semi_tok: <Id.Op_Semi _> body: (command.DoGroup left: <Id.KW_Do do> children: [ (command.AndOr children: [ (command.Simple blame_tok: <mute_and_zero_levels_on_card> more_env: [] words: [ {<mute_and_zero_levels_on_card>} {(DQ ($ Id.VSub_DollarName CARD))} ] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'TTZML_RETURNSTATUS='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'TTZML_RETURNSTATUS='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TTZML_RETURNSTATUS='> name: TTZML_RETURNSTATUS ) op: assign_op.Equal rhs: {<1>} ) ] redirects: [] ) ] ops: [<Id.Op_DPipe _>] ) ] right: <Id.KW_Done done> ) redirects: [] ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.AndOr children: [ (command.Simple blame_tok: <mute_and_zero_levels_on_card> more_env: [] words: [{<mute_and_zero_levels_on_card>} {(DQ ($ Id.VSub_Number 1))}] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'TTZML_RETURNSTATUS='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'TTZML_RETURNSTATUS='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TTZML_RETURNSTATUS='> name: TTZML_RETURNSTATUS ) op: assign_op.Equal rhs: {<1>} ) ] redirects: [] ) ] ops: [<Id.Op_DPipe _>] ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.ControlFlow keyword: <Id.ControlFlow_Return return> arg_word: {($ Id.VSub_DollarName TTZML_RETURNSTATUS)} ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <card_OK> name: card_OK body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.AndOr children: [ (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [{<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_Number 1))} {<Id.Lit_RBracket ']'>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <bugout> more_env: [] words: [{<bugout>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_Number 1))} {<Id.Lit_Equals '='>} {<all>} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [{<Id.Lit_LBracket '['>} {<-d>} {<'/proc/asound'>} {<Id.Lit_RBracket ']'>}] redirects: [] do_fork: T ) (command.ControlFlow keyword: <Id.ControlFlow_Return return> arg_word: {($ Id.VSub_QMark '?')} ) ] spids: [782 798] ) ] else_kw: <Id.KW_Else else> else_action: [ (command.AndOr children: [ (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<-d>} {(DQ <'/proc/asound/card'> ($ Id.VSub_Number 1))} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<-d>} {(DQ <'/proc/asound/'> ($ Id.VSub_Number 1))} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) (command.ControlFlow keyword: <Id.ControlFlow_Return return> arg_word: {($ Id.VSub_QMark '?')} ) ] fi_kw: <Id.KW_Fi fi> redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{(DQ ($ Id.VSub_Number 1))}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <start> pattern: (pat.Words words:[{<start>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'EXITSTATUS='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'EXITSTATUS='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'EXITSTATUS='> name:EXITSTATUS) op: assign_op.Equal rhs: {<0>} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'TARGET_CARD='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'TARGET_CARD='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TARGET_CARD='> name:TARGET_CARD) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_Number 2))} ) ] redirects: [] ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{(DQ ($ Id.VSub_DollarName TARGET_CARD))}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.Left_DoubleQuote '"'> pattern: (pat.Words words:[{(DQ )} {<all>}]) middle: <Id.Right_CasePat _> action: [ (command.Sentence child: (command.ShAssignment left: <Id.Lit_VarLike 'TARGET_CARD='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'TARGET_CARD='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGET_CARD='> name: TARGET_CARD ) op: assign_op.Equal rhs: {<all>} ) ] redirects: [] ) terminator: <Id.Op_Semi _> ) (command.Simple blame_tok: <log_action_begin_msg> more_env: [] words: [{<log_action_begin_msg>} {(DQ <'Setting up ALSA'>)}] redirects: [] do_fork: T ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.Simple blame_tok: <log_action_begin_msg> more_env: [] words: [ {<log_action_begin_msg>} {(DQ <'Setting up ALSA card '> (${ Id.VSub_Name TARGET_CARD))} ] redirects: [] do_fork: T ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.AndOr children: [ (command.Simple blame_tok: <card_OK> more_env: [] words: [{<card_OK>} {(DQ ($ Id.VSub_DollarName TARGET_CARD))}] redirects: [] do_fork: T ) (command.Simple blame_tok: <log_action_end_msg_and_exit> more_env: [] words: [ {<log_action_end_msg_and_exit>} { (DQ (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.CommandList children: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {(DQ ($ Id.VSub_Number 2))} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) (command.Sentence child: (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {($ Id.VSub_QMark '?')}] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) right: <Id.Eof_RParen _> ) ) } {(DQ <'none loaded'>)} ] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) (command.AndOr children: [ (command.Simple blame_tok: <preinit_levels> more_env: [] words: [{<preinit_levels>} {(DQ ($ Id.VSub_DollarName TARGET_CARD))}] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'EXITSTATUS='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'EXITSTATUS='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'EXITSTATUS='> name:EXITSTATUS) op: assign_op.Equal rhs: {<1>} ) ] redirects: [] ) ] ops: [<Id.Op_DPipe _>] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Pipeline negated: <Id.KW_Bang '!'> children: [ (command.Simple blame_tok: <restore_levels> more_env: [] words: [{<restore_levels>} {(DQ ($ Id.VSub_DollarName TARGET_CARD))}] redirects: [] do_fork: T ) ] ops: [] ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.AndOr children: [ (command.Simple blame_tok: <sanify_levels> more_env: [] words: [{<sanify_levels>} {(DQ ($ Id.VSub_DollarName TARGET_CARD))}] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'EXITSTATUS='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'EXITSTATUS='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'EXITSTATUS='> name: EXITSTATUS ) op: assign_op.Equal rhs: {<1>} ) ] redirects: [] ) ] ops: [<Id.Op_DPipe _>] ) (command.AndOr children: [ (command.Simple blame_tok: <restore_levels> more_env: [] words: [{<restore_levels>} {(DQ ($ Id.VSub_DollarName TARGET_CARD))}] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) (Redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<1>} ) ] do_fork: T ) (command.Simple blame_tok: <Id.Lit_Colon ':'> more_env: [] words: [{<Id.Lit_Colon ':'>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) ] spids: [981 993] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.Simple blame_tok: <log_action_end_msg_and_exit> more_env: [] words: [{<log_action_end_msg_and_exit>} {(DQ ($ Id.VSub_DollarName EXITSTATUS))}] redirects: [] do_fork: T ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <stop> pattern: (pat.Words words:[{<stop>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'EXITSTATUS='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'EXITSTATUS='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'EXITSTATUS='> name:EXITSTATUS) op: assign_op.Equal rhs: {<0>} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'TARGET_CARD='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'TARGET_CARD='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TARGET_CARD='> name:TARGET_CARD) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_Number 2))} ) ] redirects: [] ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{(DQ ($ Id.VSub_DollarName TARGET_CARD))}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.Left_DoubleQuote '"'> pattern: (pat.Words words:[{(DQ )} {<all>}]) middle: <Id.Right_CasePat _> action: [ (command.Sentence child: (command.ShAssignment left: <Id.Lit_VarLike 'TARGET_CARD='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'TARGET_CARD='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGET_CARD='> name: TARGET_CARD ) op: assign_op.Equal rhs: {<all>} ) ] redirects: [] ) terminator: <Id.Op_Semi _> ) (command.Simple blame_tok: <log_action_begin_msg> more_env: [] words: [{<log_action_begin_msg>} {(DQ <'Shutting down ALSA'>)}] redirects: [] do_fork: T ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.Simple blame_tok: <log_action_begin_msg> more_env: [] words: [ {<log_action_begin_msg>} {(DQ <'Shutting down ALSA card '> (${ Id.VSub_Name TARGET_CARD))} ] redirects: [] do_fork: T ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.AndOr children: [ (command.Simple blame_tok: <card_OK> more_env: [] words: [{<card_OK>} {(DQ ($ Id.VSub_DollarName TARGET_CARD))}] redirects: [] do_fork: T ) (command.Simple blame_tok: <log_action_end_msg_and_exit> more_env: [] words: [ {<log_action_end_msg_and_exit>} { (DQ (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.CommandList children: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {(DQ ($ Id.VSub_Number 2))} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) (command.Sentence child: (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {($ Id.VSub_QMark '?')}] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) right: <Id.Eof_RParen _> ) ) } {(DQ <'none loaded'>)} ] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) (command.AndOr children: [ (command.Simple blame_tok: <store_levels> more_env: [] words: [{<store_levels>} {(DQ ($ Id.VSub_DollarName TARGET_CARD))}] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'EXITSTATUS='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'EXITSTATUS='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'EXITSTATUS='> name:EXITSTATUS) op: assign_op.Equal rhs: {<1>} ) ] redirects: [] ) ] ops: [<Id.Op_DPipe _>] ) (command.Simple blame_tok: <log_action_end_msg_and_exit> more_env: [] words: [{<log_action_end_msg_and_exit>} {(DQ ($ Id.VSub_DollarName EXITSTATUS))}] redirects: [] do_fork: T ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <restart> pattern: (pat.Words words:[{<restart>} {<force-reload>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'EXITSTATUS='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'EXITSTATUS='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'EXITSTATUS='> name:EXITSTATUS) op: assign_op.Equal rhs: {<0>} ) ] redirects: [] ) (command.AndOr children: [ (command.Simple blame_tok: <Id.VSub_Number '$0'> more_env: [] words: [{($ Id.VSub_Number 0)} {<stop>}] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'EXITSTATUS='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'EXITSTATUS='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'EXITSTATUS='> name:EXITSTATUS) op: assign_op.Equal rhs: {<1>} ) ] redirects: [] ) ] ops: [<Id.Op_DPipe _>] ) (command.AndOr children: [ (command.Simple blame_tok: <Id.VSub_Number '$0'> more_env: [] words: [{($ Id.VSub_Number 0)} {<start>}] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'EXITSTATUS='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'EXITSTATUS='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'EXITSTATUS='> name:EXITSTATUS) op: assign_op.Equal rhs: {<1>} ) ] redirects: [] ) ] ops: [<Id.Op_DPipe _>] ) (command.ControlFlow keyword: <Id.ControlFlow_Exit exit> arg_word: {($ Id.VSub_DollarName EXITSTATUS)} ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <reset> pattern: (pat.Words words:[{<reset>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'TARGET_CARD='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'TARGET_CARD='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TARGET_CARD='> name:TARGET_CARD) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_Number 2))} ) ] redirects: [] ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w:{(DQ ($ Id.VSub_DollarName TARGET_CARD))}) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Id.Left_DoubleQuote '"'> pattern: (pat.Words words:[{(DQ )} {<all>}]) middle: <Id.Right_CasePat _> action: [ (command.Sentence child: (command.ShAssignment left: <Id.Lit_VarLike 'TARGET_CARD='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'TARGET_CARD='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'TARGET_CARD='> name: TARGET_CARD ) op: assign_op.Equal rhs: {<all>} ) ] redirects: [] ) terminator: <Id.Op_Semi _> ) (command.Simple blame_tok: <log_action_begin_msg> more_env: [] words: [{<log_action_begin_msg>} {(DQ <'Resetting ALSA'>)}] redirects: [] do_fork: T ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.Simple blame_tok: <log_action_begin_msg> more_env: [] words: [ {<log_action_begin_msg>} {(DQ <'Resetting ALSA card '> (${ Id.VSub_Name TARGET_CARD))} ] redirects: [] do_fork: T ) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.AndOr children: [ (command.Simple blame_tok: <card_OK> more_env: [] words: [{<card_OK>} {(DQ ($ Id.VSub_DollarName TARGET_CARD))}] redirects: [] do_fork: T ) (command.Simple blame_tok: <log_action_end_msg_and_exit> more_env: [] words: [ {<log_action_end_msg_and_exit>} { (DQ (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.CommandList children: [ (command.Sentence child: (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {(DQ ($ Id.VSub_Number 2))} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) (command.Sentence child: (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {($ Id.VSub_QMark '?')}] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) right: <Id.Eof_RParen _> ) ) } {(DQ <'none loaded'>)} ] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) (command.Simple blame_tok: <preinit_levels> more_env: [] words: [{<preinit_levels>} {(DQ ($ Id.VSub_DollarName TARGET_CARD))}] redirects: [] do_fork: T ) (command.Simple blame_tok: <sanify_levels> more_env: [] words: [{<sanify_levels>} {(DQ ($ Id.VSub_DollarName TARGET_CARD))}] redirects: [] do_fork: T ) (command.Simple blame_tok: <log_action_end_msg_and_exit> more_env: [] words: [{<log_action_end_msg_and_exit>} {(DQ ($ Id.VSub_QMark '?'))}] redirects: [] do_fork: T ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} { (DQ <'Usage: '> ($ Id.VSub_DollarName MYNAME) <' {start [CARD]|stop [CARD]|restart [CARD]|reset [CARD]}'> ) } ] redirects: [(Redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] do_fork: T ) (command.ControlFlow keyword:<Id.ControlFlow_Exit exit> arg_word:{<3>}) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) ] )