(command.CommandList children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:PATH) op: assign_op.Equal rhs: {(/sbin) (Id.Lit_Other ':') (/usr/sbin) (Id.Lit_Other ':') (/bin) (Id.Lit_Other ':') (/usr/bin) } spids: [40] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:KERNEL) op: assign_op.Equal rhs: { (DQ (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:51) command_list: (command.CommandList children:[(C {(uname)} {(-s)})]) ) ) } spids: [49] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:RELEASE) op: assign_op.Equal rhs: { (DQ (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:60) command_list: (command.CommandList children:[(C {(uname)} {(-r)})]) ) ) } spids: [58] ) ] ) (C {(.)} {(/lib/init/vars.sh)}) (C {(.)} {(/lib/lsb/init-functions)}) (command.Case to_match: {(DQ (${ Id.VSub_Name KERNEL) (':') (${ Id.VSub_Name RELEASE))} arms: [ (case_arm pat_list: [ {(Linux) (Id.Lit_Other ':') (Id.Lit_LBracket '[') (01) (Id.Lit_RBracket ']') (.) (Id.Lit_Star '*') } {(Linux) (Id.Lit_Other ':') (2.) (Id.Lit_LBracket '[') (01) (Id.Lit_RBracket ']') (.) (Id.Lit_Star '*') } ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:FLAGS) op: assign_op.Equal rhs: {(DQ )} spids: [111] ) ] ) ] spids: [92 108 116 -1] ) (case_arm pat_list: [ {(Linux) (Id.Lit_Other ':') (2.) (Id.Lit_LBracket '[') (23) (Id.Lit_RBracket ']') (.) (Id.Lit_Star '*') } {(Linux) (Id.Lit_Other ':') (2.4.) (Id.Lit_QMark '?')} {(Linux) (Id.Lit_Other ':') (2.4.) (Id.Lit_QMark '?') (-) (Id.Lit_Star '*')} {(Linux) (Id.Lit_Other ':') (2.4.10)} {(Linux) (Id.Lit_Other ':') (2.4.10-) (Id.Lit_Star '*')} ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:FLAGS) op: assign_op.Equal rhs: {(DQ (-f))} spids: [151] ) ] ) ] spids: [119 148 157 -1] ) (case_arm pat_list: [{(Id.Lit_Star '*')}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:FLAGS) op: assign_op.Equal rhs: {(DQ ('-f -l'))} spids: [164] ) ] ) ] spids: [160 161 170 -1] ) ] ) (command.ShFunction name: do_stop body: (command.BraceGroup children: [ (C {(halt)} {(-w)}) (C {(rm)} {(-f)} {(/tmp/.clean)} {(/run/.clean)} {(/run/lock/.clean)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:DIRS) op: assign_op.Equal rhs: {(DQ )} spids: [222] ) ] ) (command.WhileUntil keyword: (Token id:Id.KW_While val:while span_id:227) cond: [(C {(read)} {(-r)} {(DEV)} {(MTPT)} {(FSTYPE)} {(OPTS)} {(REST)})] body: (command.DoGroup children: [ (command.Case to_match: {(DQ ($ Id.VSub_DollarName '$MTPT'))} arms: [ (case_arm pat_list: [ {(/)} {(/proc)} {(/dev)} {(/dev/pts)} {(/dev/shm)} {(/proc/) (Id.Lit_Star '*')} {(/sys)} {(/run)} {(/run/) (Id.Lit_Star '*')} ] action: [ (command.ControlFlow token: (Token id:Id.ControlFlow_Continue val:continue span_id:278) ) ] spids: [256 275 281 -1] ) ] ) (command.Case to_match: {(DQ ($ Id.VSub_DollarName '$FSTYPE'))} arms: [ (case_arm pat_list: [ {(nfs)} {(nfs4)} {(smbfs)} {(ncp)} {(ncpfs)} {(cifs)} {(coda)} {(ocfs2)} {(gfs)} {(ceph)} ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:DIRS) op: assign_op.Equal rhs: { (DQ ($ Id.VSub_DollarName '$MTPT') (' ') ($ Id.VSub_DollarName '$DIRS') ) } spids: [318] ) ] ) ] spids: [296 315 326 -1] ) (case_arm pat_list: [ {(Id.KW_Proc proc)} {(procfs)} {(linprocfs)} {(devpts)} {(usbfs)} {(usbdevfs)} {(sysfs)} ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:DIRS) op: assign_op.Equal rhs: { (DQ ($ Id.VSub_DollarName '$MTPT') (' ') ($ Id.VSub_DollarName '$DIRS') ) } spids: [345] ) ] ) ] spids: [329 342 353 -1] ) ] ) (command.Case to_match: {(DQ ($ Id.VSub_DollarName '$OPTS'))} arms: [ (case_arm pat_list: [ {(_netdev)} {(Id.Lit_Star '*') (Id.Lit_Comma ',') (_netdev)} {(_netdev) (Id.Lit_Comma ',') (Id.Lit_Star '*')} {(Id.Lit_Star '*') (Id.Lit_Comma ',') (_netdev) (Id.Lit_Comma ',') (Id.Lit_Star '*') } ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:DIRS) op: assign_op.Equal rhs: { (DQ ($ Id.VSub_DollarName '$MTPT') (' ') ($ Id.VSub_DollarName '$DIRS') ) } spids: [386] ) ] ) ] spids: [368 383 394 -1] ) ] ) ] ) redirects: [ (redir.Redir op: (Token id:Id.Redir_Less val:'<' span_id:402) fd: -1 arg_word: {(/etc/mtab)} ) ] ) (command.If arms: [ (if_arm cond: [ (C {(Id.Lit_LBracket '[')} {(DQ ($ Id.VSub_DollarName '$DIRS'))} {(Id.Lit_RBracket ']')} ) ] action: [ (command.AndOr ops: [Id.Op_DPipe] children: [ (C {(Id.Lit_LBracket '[')} {(DQ ($ Id.VSub_DollarName '$VERBOSE'))} {(Id.Lit_Equals '=')} {(no)} {(Id.Lit_RBracket ']')} ) (C {(log_action_begin_msg)} {(DQ ('Unmounting remote and non-toplevel virtual filesystems'))} ) ] ) (C {(fstab-decode)} {(umount)} {($ Id.VSub_DollarName '$FLAGS')} {($ Id.VSub_DollarName '$DIRS')} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ES) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [452] ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {(Id.Lit_LBracket '[')} {(DQ ($ Id.VSub_DollarName '$VERBOSE'))} {(Id.Lit_Equals '=')} {(no)} {(Id.Lit_RBracket ']')} ) (C {(log_action_end_msg)} {($ Id.VSub_DollarName '$ES')}) ] ) ] spids: [408 419] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(-x)} {(/sbin/initctl)} {(Id.Lit_RBracket ']')}) terminator: (Token id:Id.Op_Semi val:';' span_id:496) ) ] action: [ (command.AndOr ops: [Id.Op_DPipe] children: [ (command.Simple words: [{(initctl)} {(--quiet)} {(emit)} {(unmounted-remote-filesystems)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'2>' span_id:509) fd: 2 arg_word: {(/dev/null)} ) ] ) (C {(true)}) ] ) ] spids: [487 498] ) ] ) ] ) ) (command.Case to_match: {(DQ ($ Id.VSub_Number '$1'))} arms: [ (case_arm pat_list:[{(start)} {(status)}] spids:[531 534 541 -1]) (case_arm pat_list: [{(restart)} {(reload)} {(force-reload)}] action: [ (command.Simple words: [{(echo)} {(DQ ("Error: argument '") ($ Id.VSub_Number '$1') ("' not supported"))}] redirects: [ (redir.Redir op: (Token id:Id.Redir_GreatAnd val:'>&' span_id:560) fd: -1 arg_word: {(2)} ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:564) arg_word: {(3)} ) ] spids: [544 549 569 -1] ) (case_arm pat_list: [{(stop)} {(DQ )}] action: [(C {(do_stop)})] spids: [572 576 582 -1] ) (case_arm pat_list: [{(Id.Lit_Star '*')}] action: [ (command.Simple words: [{(echo)} {(DQ ('Usage: umountnfs.sh [start|stop]'))}] redirects: [ (redir.Redir op: (Token id:Id.Redir_GreatAnd val:'>&' span_id:595) fd: -1 arg_word: {(2)} ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:599) arg_word: {(3)} ) ] spids: [585 586 604 -1] ) ] ) (C {(Id.Lit_Other ':')}) ] )