(command.CommandList children: [ (command.AndOr ops: [Id.Op_DPipe] children: [ (command.Simple words: [{<which>} {<grub-editenv>}] redirects: [ (redir.Redir op:<Id.Redir_Great '>'> fd:-1 arg_word:{</dev/null>}) (redir.Redir op:<Id.Redir_GreatAnd '2>&'> fd:2 arg_word:{<1>}) ] ) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<0>}) ] ) (C {<.>} {</lib/init/vars.sh>}) (C {<.>} {</lib/lsb/init-functions>}) (command.Case to_match: {($ Id.VSub_Number '$1')} arms: [ (case_arm pat_list: [{<start>} {<restart>} {<force-reload>}] action: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$VERBOSE'))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {<no>} {<Id.Lit_RBracket ']'>} ) (C {<log_action_msg>} {(DQ <'Recording successful boot for GRUB'>)}) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<Id.Lit_LBracket '['>} {<-s>} {</boot/grub/grubenv>} {<Id.Lit_RBracket ']'>}) (C {<rm>} {<-f>} {</boot/grub/grubenv>}) ] ) (C {<mkdir>} {<-p>} {</boot/grub>}) (C {<grub-editenv>} {</boot/grub/grubenv>} {<unset>} {<recordfail>}) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$VERBOSE'))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {<no>} {<Id.Lit_RBracket ']'>} ) (C {<log_end_msg>} {($ Id.VSub_QMark '$?')}) ] ) ] spids: [80 85 163 -1] ) (case_arm pat_list:[{<stop>}] spids:[166 167 170 -1]) (case_arm pat_list: [{<status>}] action: [(command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<0>})] spids: [173 174 182 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [ (command.Simple words: [ {<echo>} { (DQ <'Usage: '> ($ Id.VSub_Number '$0') <' {start|stop|status|restart|force-reload}'>) } ] redirects: [(redir.Redir op:<Id.Redir_GreatAnd '>&'> fd:-1 arg_word:{<2>})] ) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<3>}) ] spids: [185 186 206 -1] ) ] ) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<0>}) ] )