(command.CommandList children: [ (command.ShFunction name: usage body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-n>} {(DQ ($ Id.VSub_Number 1))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [{<echo>} {(DQ <'umountall: '> ($ Id.VSub_Number 1))}] redirects: [ (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) ] more_env: [] do_fork: T ) ] spids: [93 106] ) ] else_action: [] redirects: [] ) (command.Simple words: [ {<echo>} { (DQ <'Usage:'> <Id.Lit_BadBackslash '\\'> <n> <Id.Lit_BadBackslash '\\'> <'tumountall [-k] [-s] [-F FSType] [-l|-r] [-Z] [-n]'> ) } ] redirects: [(redir op:<Id.Redir_GreatAnd '1>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] more_env: [] do_fork: T ) (command.Simple words: [ {<echo>} {(DQ <Id.Lit_BadBackslash '\\'> <'tumountall [-k] [-s] [-h host] [-Z] [-n]'>)} ] redirects: [(redir op:<Id.Redir_GreatAnd '1>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] more_env: [] do_fork: T ) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<2>}) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'MNTTAB='> name:MNTTAB) op: assign_op.Equal rhs: {<'/etc/mnttab'>} spids: [155] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PATH='> name:PATH) op: assign_op.Equal rhs: {<'/sbin'> <Id.Lit_Colon ':'> <'/usr/sbin'> <Id.Lit_Colon ':'> <'/usr/bin'>} spids: [247] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'FSType='> name:FSType) op: assign_op.Equal rhs: (rhs_word.Empty) spids: [258] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'FFLAG='> name:FFLAG) op: assign_op.Equal rhs: (rhs_word.Empty) spids: [260] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'HOST='> name:HOST) op: assign_op.Equal rhs: (rhs_word.Empty) spids: [262] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'HFLAG='> name:HFLAG) op: assign_op.Equal rhs: (rhs_word.Empty) spids: [264] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'RFLAG='> name:RFLAG) op: assign_op.Equal rhs: (rhs_word.Empty) spids: [266] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'LFLAG='> name:LFLAG) op: assign_op.Equal rhs: (rhs_word.Empty) spids: [268] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SFLAG='> name:SFLAG) op: assign_op.Equal rhs: (rhs_word.Empty) spids: [270] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'KFLAG='> name:KFLAG) op: assign_op.Equal rhs: (rhs_word.Empty) spids: [272] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ZFLAG='> name:ZFLAG) op: assign_op.Equal rhs: (rhs_word.Empty) spids: [274] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'NFLAG='> name:NFLAG) op: assign_op.Equal rhs: (rhs_word.Empty) spids: [276] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'LOCALNAME='> name:LOCALNAME) op: assign_op.Equal rhs: (rhs_word.Empty) spids: [278] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'UMOUNTFLAG='> name:UMOUNTFLAG) op: assign_op.Equal rhs: (rhs_word.Empty) spids: [280] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'RemoteFSTypes='> name:RemoteFSTypes) op: assign_op.Equal rhs: (rhs_word.Empty) spids: [282] ) ] redirects: [] ) (command.ShFunction name: isremote body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ForEach iter_names: [t] iterable: (for_iter.Words words:[{($ Id.VSub_DollarName RemoteFSTypes)}]) body: (command.DoGroup children: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName t))} {<Id.Lit_Equals '='>} {(DQ ($ Id.VSub_Number 1))} {<Id.Lit_RBracket ']'>} ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] ) ] ) redirects: [] ) (command.ControlFlow token:<Id.ControlFlow_Return return> arg_word:{<1>}) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'RemoteFSTypes='> name:RemoteFSTypes) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands: [ (command.Sentence child: (C {<read>} {<t>} {<junk>}) terminator: <Id.Op_Semi _> ) ] ) body: (command.DoGroup children: [ (command.Sentence child: (C {<echo>} {($ Id.VSub_DollarName t)}) terminator: <Id.Op_Semi _> ) ] ) redirects: [ (redir op: <Id.Redir_Less '<'> loc: (redir_loc.Fd fd:0) arg: {<'/etc/dfs/fstypes'>} ) ] ) right: <Id.Backtick_Right '`'> ) } spids: [344] ) ] redirects: [] ) (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands: [ (C {<getopts>} {<Id.Lit_QMark '?'> <rslkF> <Id.Lit_Colon ':'> <h> <Id.Lit_Colon ':'> <Zn>} {<c>} ) ] ) body: (command.DoGroup children: [ (command.Case to_match: {($ Id.VSub_DollarName c)} arms: [ (case_arm pat_list: [{<r>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'RFLAG='> name:RFLAG) op: assign_op.Equal rhs: {(DQ <r>)} spids: [408] ) ] redirects: [] ) ] spids: [405 406 412 -1] ) (case_arm pat_list: [{<l>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'LFLAG='> name:LFLAG) op: assign_op.Equal rhs: {(DQ <l>)} spids: [418] ) ] redirects: [] ) ] spids: [415 416 422 -1] ) (case_arm pat_list: [{<s>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SFLAG='> name:SFLAG) op: assign_op.Equal rhs: {(DQ <s>)} spids: [428] ) ] redirects: [] ) ] spids: [425 426 432 -1] ) (case_arm pat_list: [{<k>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'KFLAG='> name:KFLAG) op: assign_op.Equal rhs: {(DQ <k>)} spids: [438] ) ] redirects: [] ) ] spids: [435 436 442 -1] ) (case_arm pat_list: [{<h>}] action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-n>} {(DQ ($ Id.VSub_DollarName HFLAG))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<usage>} {(DQ <'more than one host specified'>)})] spids: [448 461] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'HOST='> name:HOST) op: assign_op.Equal rhs: {($ Id.VSub_DollarName OPTARG)} spids: [474] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'HFLAG='> name:HFLAG) op: assign_op.Equal rhs: {(DQ <h>)} spids: [478] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'LOCALNAME='> name:LOCALNAME) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<uname>} {<-n>}) right: <Id.Backtick_Right '`'> ) } spids: [484] ) ] redirects: [] ) ] spids: [445 446 494 -1] ) (case_arm pat_list: [{<F>}] action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-n>} {(DQ ($ Id.VSub_DollarName FFLAG))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<usage>} {(DQ <'more than one FStype specified'>)})] spids: [501 514] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'FSType='> name:FSType) op: assign_op.Equal rhs: {($ Id.VSub_DollarName OPTARG)} spids: [527] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'FFLAG='> name:FFLAG) op: assign_op.Equal rhs: {(DQ <f>)} spids: [532] ) ] redirects: [] ) (command.Sentence child: (command.Case to_match: {($ Id.VSub_DollarName FSType)} arms: [ (case_arm pat_list: [ {<Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_QMark '?'> <Id.Lit_Star '*'> } ] action: [ (C {<usage>} { (DQ <'FSType '> (${ Id.VSub_Name FSType) <' exceeds 8 characters'>) } ) ] spids: [545 555 -1 570] ) ] redirects: [] ) terminator: <Id.Op_Semi _> ) ] spids: [498 499 574 -1] ) (case_arm pat_list: [{<Z>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ZFLAG='> name:ZFLAG) op: assign_op.Equal rhs: {(DQ <z>)} spids: [580] ) ] redirects: [] ) ] spids: [577 578 584 -1] ) (case_arm pat_list: [{<n>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'NFLAG='> name:NFLAG) op: assign_op.Equal rhs: {(DQ <n>)} spids: [590] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'UMOUNTFLAG='> name:UMOUNTFLAG) op: assign_op.Equal rhs: {(DQ <-V>)} spids: [604] ) ] redirects: [] ) (command.ShFunction name: fuser body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple words: [{<echo>} {(DQ <'fuser '> ($ Id.VSub_Star '*'))}] redirects: [ (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) ] more_env: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: sleep body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [(C {<Id.Lit_Colon ':'>})] redirects: [] right: <Id.Lit_RBrace '}'> ) ) ] spids: [587 588 649 -1] ) (case_arm pat_list: [{(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\?'> ch:'?')}] action: [(C {<usage>} {(DQ )})] spids: [652 653 661 -1] ) ] redirects: [] ) ] ) redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_Pound '#')} {<-ge>} {($ Id.VSub_DollarName OPTIND)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<usage>} {(DQ <'additional arguments not supported'>)})] spids: [694 707] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-n>} {(DQ ($ Id.VSub_DollarName RFLAG))} {<-a>} {<-n>} {(DQ ($ Id.VSub_DollarName LFLAG))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<usage>} {(DQ <'options -r and -l are incompatible'>)})] spids: [722 743] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\('> ch:'(')} {<-n>} {(DQ ($ Id.VSub_DollarName RFLAG))} {<-o>} {<-n>} {(DQ ($ Id.VSub_DollarName LFLAG))} {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\)'> ch:')')} {<-a>} {(DQ ($ Id.VSub_DollarName HFLAG))} {<Id.Lit_Equals '='>} {(DQ <h>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<usage>} { (DQ <'option -'> (${ Id.VSub_Name RFLAG) (${ Id.VSub_Name LFLAG) <' incompatible with -h option'> ) } ) ] spids: [758 795] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-n>} {(DQ ($ Id.VSub_DollarName FFLAG))} {<-a>} {(DQ ($ Id.VSub_DollarName HFLAG))} {<Id.Lit_Equals '='>} {(DQ <h>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<usage>} {(DQ <'Specifying FStype incompatible with -h option'>)})] spids: [817 842] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-n>} {(DQ ($ Id.VSub_DollarName HFLAG))} {<-a>} {(DQ ($ Id.VSub_DollarName HOST))} {<Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName LOCALNAME))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<usage>} {(DQ <'Specifying local host illegal for -h option'>)})] spids: [857 882] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName LFLAG))} {<Id.Lit_Equals '='>} {(DQ <l>)} {<-a>} {<-n>} {(DQ ($ Id.VSub_DollarName FSType))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<isremote>} {(DQ ($ Id.VSub_DollarName FSType))}) (C {<usage>} {(DQ <'option -l and FSType '> (${ Id.VSub_Name FSType) <' are incompatible'>)} ) ] ) ] spids: [897 922] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName RFLAG))} {<Id.Lit_Equals '='>} {(DQ <r>)} {<-a>} {<-n>} {(DQ ($ Id.VSub_DollarName FSType))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<isremote>} {(DQ ($ Id.VSub_DollarName FSType))}) (C {<usage>} {(DQ <'option -r and FSType '> (${ Id.VSub_Name FSType) <' are incompatible'>)} ) ] ) ] spids: [954 979] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ZONENAME='> name:ZONENAME) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<zonename>}) right: <Id.Backtick_Right '`'> ) } spids: [1011] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-z>} { (DQ (${ Id.VSub_Name SFLAG) (${ Id.VSub_Name LFLAG) (${ Id.VSub_Name RFLAG) (${ Id.VSub_Name HFLAG) (${ Id.VSub_Name KFLAG) (${ Id.VSub_Name FFLAG) (${ Id.VSub_Name ZFLAG) ) } {<-a>} {(DQ ($ Id.VSub_DollarName ZONENAME))} {<Id.Lit_Equals '='>} {(DQ <global>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<umount>} {<-a>} {(${ Id.VSub_Name UMOUNTFLAG)}) (command.ControlFlow token:<Id.ControlFlow_Exit exit>) ] spids: [1031 1078] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-n>} {(DQ ($ Id.VSub_DollarName KFLAG))} {<-a>} {<-z>} {(DQ ($ Id.VSub_DollarName NFLAG))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-x>} {<'/usr/sbin/fuser'>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShFunction name: fuser body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple words: [{<echo>} {(DQ <'umountall: fuser -k skipped (no /usr)'>)}] redirects: [ (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) ] more_env: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: sleep body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [(C {<Id.Lit_Colon ':'>})] redirects: [] right: <Id.Lit_RBrace '}'> ) ) ] spids: [1128 1141] ) ] else_action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-x>} {<'/usr/bin/sleep'>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShFunction name: sleep body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple words: [ {<echo>} {(DQ <'umountall: sleep after fuser -k skipped (no /usr)'>)} ] redirects: [ (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) ] more_env: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) ] spids: [1189 1202] ) ] else_action: [] redirects: [] ) ] redirects: [] ) ] spids: [1104 1125] ) ] else_action: [] redirects: [] ) (command.ShFunction name: print_nfs_host body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OIFS='> name:OIFS) op: assign_op.Equal rhs: {($ Id.VSub_DollarName IFS)} spids: [1258] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IFS='> name:IFS) op: assign_op.Equal rhs: {(DQ <':'>)} spids: [1262] ) ] redirects: [] ) (C {<set>} {<-->} {($ Id.VSub_Star '*')}) (C {<echo>} {($ Id.VSub_Number 1)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IFS='> name:IFS) op: assign_op.Equal rhs: {($ Id.VSub_DollarName OIFS)} spids: [1280] ) ] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: print_smbfs_host body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OIFS='> name:OIFS) op: assign_op.Equal rhs: {($ Id.VSub_DollarName IFS)} spids: [1305] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IFS='> name:IFS) op: assign_op.Equal rhs: {(DQ <'/@'>)} spids: [1309] ) ] redirects: [] ) (C {<set>} {<-->} {($ Id.VSub_Star '*')}) (command.Case to_match: {($ Id.VSub_Pound '#')} arms: [ (case_arm pat_list: [{<3>}] action: [(C {<echo>} {(DQ ($ Id.VSub_Number 2))})] spids: [1329 1330 1337 -1] ) (case_arm pat_list: [{<2>}] action: [(C {<echo>} {(DQ ($ Id.VSub_Number 1))})] spids: [1340 1341 1348 -1] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IFS='> name:IFS) op: assign_op.Equal rhs: {($ Id.VSub_DollarName OIFS)} spids: [1354] ) ] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: doumounts body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Subshell child: (command.CommandList children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'rc='> name:rc) op: assign_op.Equal rhs: {<0>} spids: [1380] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'fslist='> name:fslist) op: assign_op.Equal rhs: {(DQ )} spids: [1384] ) ] redirects: [] ) (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands: [(C {<read>} {<dev>} {<mountp>} {<fstype>} {<mode>} {<dummy>})] ) body: (command.DoGroup children: [ (command.Case to_match: {(DQ (${ Id.VSub_Name mountp))} arms: [ (case_arm pat_list: [ {<'/'>} {<'/dev'>} {<'/dev/fd'>} {<'/devices'>} {<'/etc/mnttab'>} {<'/etc/svc/volatile'>} {<'/lib'>} {<'/proc'>} {<'/sbin'>} {<'/system/contract'>} {<'/system/object'>} {<'/tmp'>} {<'/tmp/.libgrubmgmt'> <Id.Lit_Star '*'>} {<'/usr'>} {<'/var'>} {<'/var/adm'>} {<'/var/run'>} {(SQ )} ] action: [ (command.ControlFlow token: <Id.ControlFlow_Continue continue> ) ] spids: [1418 1524 1550 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-n>} {(DQ ($ Id.VSub_DollarName HFLAG))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'thishost='> name: thishost ) op: assign_op.Equal rhs: {(SQ <->)} spids: [1574] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName fstype))} {<Id.Lit_Equals '='>} {(DQ <nfs>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'thishost='> name: thishost ) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<print_nfs_host>} {($ Id.VSub_DollarName dev)} ) right: <Id.Backtick_Right '`'> ) } spids: [1600] ) ] redirects: [] ) ] spids: [1580 1597] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName fstype))} {<Id.Lit_Equals '='>} {(DQ <smbfs>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'thishost='> name: thishost ) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<print_smbfs_host>} {($ Id.VSub_DollarName dev)} ) right: <Id.Backtick_Right '`'> ) } spids: [1633] ) ] redirects: [] ) ] spids: [1613 1630] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName HOST))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName thishost))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ControlFlow token: <Id.ControlFlow_Continue continue> ) ] spids: [1646 1664] ) ] else_action: [] redirects: [] ) ] spids: [1558 1571] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-n>} {(DQ ($ Id.VSub_DollarName FFLAG))} {<-a>} {(DQ ($ Id.VSub_DollarName FSType))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName fstype))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ControlFlow token: <Id.ControlFlow_Continue continue> ) ] spids: [1676 1702] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-n>} {(DQ ($ Id.VSub_DollarName LFLAG))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<isremote>} {(DQ ($ Id.VSub_DollarName fstype))}) (command.ControlFlow token: <Id.ControlFlow_Continue continue> ) ] ) ] spids: [1712 1725] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-n>} {(DQ ($ Id.VSub_DollarName RFLAG))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<isremote>} {(DQ ($ Id.VSub_DollarName fstype))}) (command.ControlFlow token: <Id.ControlFlow_Continue continue> ) ] ) ] spids: [1795 1808] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName ZONENAME))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ <global>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ForEach iter_names: [option] iterable: (for_iter.Words words: [ { (command_sub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (C {<echo>} {($ Id.VSub_DollarName mode)}) (C {<tr>} {<Id.Lit_Comma ','>} {(SQ <'\\012'>)} ) ] negated: F stderr_indices: [] ) right: <Id.Backtick_Right '`'> ) } ] ) body: (command.DoGroup children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} { (DQ ($ Id.VSub_DollarName option ) ) } {<Id.Lit_Equals '='>} {(DQ <'zone='> ($ Id.VSub_DollarName ZONENAME))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ControlFlow token: <Id.ControlFlow_Break break> ) ] spids: [1896 1914] ) ] else_action: [] redirects: [] ) ] ) redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName option))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ <'zone='> ($ Id.VSub_DollarName ZONENAME))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ControlFlow token: <Id.ControlFlow_Continue continue> ) ] spids: [1926 1945] ) ] else_action: [] redirects: [] ) ] spids: [1829 1847] ) ] else_action: [ (command.ForEach iter_names: [option] iterable: (for_iter.Words words: [ { (command_sub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (C {<echo>} {($ Id.VSub_DollarName mode)}) (C {<tr>} {<Id.Lit_Comma ','>} {(SQ <'\\012'>)}) ] negated: F stderr_indices: [] ) right: <Id.Backtick_Right '`'> ) } ] ) body: (command.DoGroup children: [ (command.Case to_match: {(DQ ($ Id.VSub_DollarName option))} arms: [ (case_arm pat_list: [ {<Id.Lit_VarLike 'zone='> <Id.Lit_Star '*'>} ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'option='> name: option ) op: assign_op.Equal rhs: {(DQ <'zone='>)} spids: [2006] ) ] redirects: [] ) (command.ControlFlow token: <Id.ControlFlow_Break break> ) ] spids: [2001 2003 2015 -1] ) ] redirects: [] ) ] ) redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName option))} {<Id.Lit_Equals '='>} {(DQ <'zone='>)} {<-a>} {<-z>} {(DQ ($ Id.VSub_DollarName ZFLAG))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ControlFlow token: <Id.ControlFlow_Continue continue> ) ] spids: [2028 2053] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName option))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ <'zone='>)} {<-a>} {<-n>} {(DQ ($ Id.VSub_DollarName ZFLAG))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ControlFlow token: <Id.ControlFlow_Continue continue> ) ] spids: [2066 2092] ) ] else_action: [] redirects: [] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-n>} {(DQ (${ Id.VSub_Name KFLAG))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [ {<fuser>} {<-c>} {<-k>} {($ Id.VSub_DollarName mountp)} ] redirects: [ (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) ] more_env: [] do_fork: T ) (C {<sleep>} {<2>}) ] spids: [2104 2119] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-n>} {(DQ ($ Id.VSub_DollarName SFLAG))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [ {<umount>} {(${ Id.VSub_Name UMOUNTFLAG)} {(${ Id.VSub_Name mountp)} ] redirects: [ (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) ] more_env: [] do_fork: T ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'trc='> name: trc ) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} spids: [2172] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName trc)} {<-ne>} {<0>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'rc='> name: rc ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName trc)} spids: [2192] ) ] redirects: [] ) ] spids: [2176 2189] ) ] else_action: [] redirects: [] ) ] spids: [2142 2155] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'fslist='> name: fslist ) op: assign_op.Equal rhs: { (DQ ($ Id.VSub_DollarName fslist) <' '> ($ Id.VSub_DollarName mountp) ) } spids: [2206] ) ] redirects: [] ) ] redirects: [] ) ] spids: [1553 1555 -1 2217] ) ] redirects: [] ) ] ) redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-n>} {(DQ ($ Id.VSub_DollarName fslist))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [ {<umount>} {<-a>} {(${ Id.VSub_Name UMOUNTFLAG)} {($ Id.VSub_DollarName fslist)} ] redirects: [ (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) ] more_env: [] do_fork: T ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'trc='> name:trc) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} spids: [2254] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName trc)} {<-ne>} {<0>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'rc='> name:rc) op: assign_op.Equal rhs: {($ Id.VSub_DollarName trc)} spids: [2274] ) ] redirects: [] ) ] spids: [2258 2271] ) ] else_action: [] redirects: [] ) ] spids: [2224 2237] ) ] else_action: [] redirects: [] ) (C {<echo>} {($ Id.VSub_DollarName rc)}) ] ) redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-x>} {<'/usr/bin/tail'>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [{<exec>}] redirects: [ (redir op: <Id.Redir_Less '<'> loc: (redir_loc.Fd fd:0) arg: {($ Id.VSub_DollarName MNTTAB)} ) ] more_env: [] do_fork: T ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'REVERSED='> name:REVERSED) op: assign_op.Equal rhs: (rhs_word.Empty) spids: [2331] ) ] redirects: [] ) (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands: [(command.Sentence child:(C {<read>} {<line>}) terminator:<Id.Op_Semi _>)] ) body: (command.DoGroup children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-n>} {(DQ ($ Id.VSub_DollarName REVERSED))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'REVERSED='> name: REVERSED ) op: assign_op.Equal rhs: { (DQ ($ Id.VSub_DollarName line) <Id.Lit_BadBackslash '\\'> <n> ($ Id.VSub_DollarName REVERSED) ) } spids: [2360] ) ] redirects: [] ) ] spids: [2344 2357] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'REVERSED='> name:REVERSED) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName line))} spids: [2372] ) ] redirects: [] ) ] redirects: [] ) ] ) redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'error='> name:error) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [(C {<echo>} {($ Id.VSub_DollarName REVERSED)}) (C {<doumounts>})] negated: F stderr_indices: [] ) right: <Id.Backtick_Right '`'> ) } spids: [2385] ) ] redirects: [] ) ] spids: [2308 2321] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'error='> name:error) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [(C {<tail>} {<-r>} {($ Id.VSub_DollarName MNTTAB)}) (C {<doumounts>})] negated: F stderr_indices: [] ) right: <Id.Backtick_Right '`'> ) } spids: [2401] ) ] redirects: [] ) ] redirects: [] ) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{($ Id.VSub_DollarName error)}) ] )