(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 <'mountall: '> ($ 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: [100 113] ) ] else_action: [] redirects: [] ) (command.Simple words: [ {<echo>} { (DQ <'Usage:'> <Id.Lit_BadBackslash '\\'> <'nmountall [-F FSType] [-l|-r|-g] [file_system_table]'> ) } ] 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 'PATH='> name:PATH) op: assign_op.Equal rhs: {<'/usr/sbin'> <Id.Lit_Colon ':'> <'/usr/bin'>} spids: [149] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TYPES='> name:TYPES) op: assign_op.Equal rhs: {<all>} spids: [154] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'FSTAB='> name:FSTAB) op: assign_op.Equal rhs: {<'/etc/vfstab'>} spids: [157] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'err='> name:err) op: assign_op.Equal rhs: {<0>} spids: [160] ) ] 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: [167] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'GFLAG='> name:GFLAG) op: assign_op.Equal rhs: (rhs_word.Empty) spids: [169] ) ] 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: [171] ) ] 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: [173] ) ] 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: [175] ) ] 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: [177] ) ] redirects: [] ) (command.ShFunction name: checkmessage body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple words: [{<echo>} {(DQ )}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/console'>} ) ] more_env: [] do_fork: T ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_Number 1))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ )} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [ {<echo>} { (DQ <'WARNING - Unable to repair one or more '> <Id.Lit_BadBackslash '\\'> <c> ) } ] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/console'>} ) ] more_env: [] do_fork: T ) (command.Simple words: [{<echo>} {(DQ <'of the following filesystem(s):'>)}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/console'>} ) ] more_env: [] do_fork: T ) (command.Simple words: [{<echo>} {(DQ <Id.Lit_BadBackslash '\\'> <t> ($ Id.VSub_Number 1))}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/console'>} ) ] more_env: [] do_fork: T ) ] spids: [212 230] ) ] else_action: [ (command.Simple words: [{<echo>} {(DQ <'WARNING - Unable to repair one or more filesystems.'>)}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/console'>} ) ] more_env: [] do_fork: T ) ] redirects: [] ) (command.Simple words: [{<echo>} {(DQ <'Run fsck manually (fsck filesystem...).'>)}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/console'>} ) ] more_env: [] do_fork: T ) (command.Simple words: [{<echo>} {(DQ )}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/console'>} ) ] more_env: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: checkfs body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple words: [{<'/usr/sbin/fsck'>} {<-F>} {($ Id.VSub_Number 2)} {<-m>} {($ 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>}) ] more_env: [] do_fork: T ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {($ Id.VSub_QMark '?')} {<-ne>} {<0>} {<Id.Lit_RBracket ']'>} ) ] ) action: [ (command.Case to_match: {(DQ ($ Id.VSub_Number 2))} arms: [ (case_arm pat_list: [{<ufs>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'foptions='> name: foptions ) op: assign_op.Equal rhs: {(DQ <'-o p'>)} spids: [411] ) ] redirects: [] ) ] spids: [408 409 417 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'foptions='> name: foptions ) op: assign_op.Equal rhs: {(DQ <-y>)} spids: [423] ) ] redirects: [] ) ] spids: [420 421 429 -1] ) ] redirects: [] ) (C {<echo>} {(DQ <'The '>) ($ Id.VSub_Number 3) (DQ <' file system ('>) ($ Id.VSub_Number 1) (DQ <') is being checked.'>) } ) (C {<'/usr/sbin/fsck'>} {<-F>} {($ Id.VSub_Number 2)} {(${ Id.VSub_Name foptions)} {($ Id.VSub_Number 1)} ) (command.Case to_match: {($ Id.VSub_QMark '?')} arms: [ (case_arm pat_list: [{<0>} {<40>}] action: [] spids: [473 476 482 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [ (C {<echo>} {(DQ <'/usr/sbin/fsck failed with exit code '>) ($ Id.VSub_QMark '?') (DQ <.>) } ) (C {<checkmessage>} {(DQ ($ Id.VSub_Number 1))}) ] spids: [486 487 511 -1] ) ] redirects: [] ) ] spids: [379 392] ) ] else_action: [] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: saveentry body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName ALTM))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [ {<echo>} { (DQ <'/sbin/mount -F '> ($ Id.VSub_Number 1) <' '> ($ Id.VSub_Number 2) <' '> ($ Id.VSub_Number 3) <' '> ($ Id.VSub_Number 4) ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName ALTM)} ) ] more_env: [] do_fork: T ) ] spids: [547 558] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'mntlist='> name:mntlist) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName mntlist) <' '> ($ Id.VSub_Number 4))} spids: [582] ) ] redirects: [] ) ] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: isglobal body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Case to_match: {(DQ <','> (${ Id.VSub_Number 1) <','>)} arms: [ (case_arm pat_list: [ {<Id.Lit_Star '*'> <Id.Lit_Comma ','> <global> <Id.Lit_Comma ','> <Id.Lit_Star '*'>} ] action: [(command.ControlFlow token:<Id.ControlFlow_Return return> arg_word:{<0>})] spids: [618 623 631 -1] ) ] redirects: [] ) (command.ControlFlow token:<Id.ControlFlow_Return return> arg_word:{<1>}) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (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: [703] ) ] redirects: [] ) (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands: [(C {<getopts>} {<Id.Lit_QMark '?'> <grlsF> <Id.Lit_Colon ':'>} {<c>})] ) body: (command.DoGroup children: [ (command.Case to_match: {($ Id.VSub_DollarName c)} arms: [ (case_arm pat_list: [{<g>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'GFLAG='> name:GFLAG) op: assign_op.Equal rhs: {(DQ <g>)} spids: [764] ) ] redirects: [] ) ] spids: [761 762 768 -1] ) (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: [774] ) ] redirects: [] ) ] spids: [771 772 778 -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: [784] ) ] redirects: [] ) ] spids: [781 782 788 -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: [794] ) ] redirects: [] ) ] spids: [791 792 798 -1] ) (case_arm pat_list: [{<F>}] action: [ (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'FSType='> name:FSType) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName OPTARG))} spids: [804] ) ] redirects: [] ) terminator: <Id.Op_Semi _> ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName TYPES))} {<Id.Lit_Equals '='>} {(DQ <one>)} {<Id.Lit_RBracket ']'>} ) ] ) action: [ (C {<echo>} {(DQ <'mountall: more than one FSType specified'>)}) (command.ControlFlow token: <Id.ControlFlow_Exit exit> arg_word: {<2>} ) ] spids: [811 828] ) ] else_action: [] redirects: [] ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TYPES='> name:TYPES) op: assign_op.Equal rhs: {(DQ <one>)} spids: [846] ) ] redirects: [] ) terminator: <Id.Op_Semi _> ) (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 {<echo>} { (DQ <'mountall: FSType '> ($ Id.VSub_DollarName FSType) <' exceeds 8 characters'> ) } ) (command.ControlFlow token: <Id.ControlFlow_Exit exit> arg_word: {<2>} ) ] spids: [861 871 -1 889] ) ] redirects: [] ) ] spids: [801 802 892 -1] ) (case_arm pat_list: [{(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\?'> ch:'?')}] action: [(C {<usage>} {(DQ )})] spids: [895 896 902 -1] ) ] redirects: [] ) ] ) redirects: [] ) (C {<shift>} { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<'/usr/bin/expr'>} {($ Id.VSub_DollarName OPTIND)} {<->} {<1>}) right: <Id.Backtick_Right '`'> ) } ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_Pound '#')} {<-gt>} {<1>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<usage>} {(DQ <'multiple arguments not supported'>)})] spids: [928 941] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_Pound '#')} {<Id.Lit_Equals '='>} {<1>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Case to_match: {($ Id.VSub_Number 1)} arms: [ (case_arm pat_list: [{(DQ <->)}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'FSTAB='> name:FSTAB) op: assign_op.Equal rhs: {(DQ )} spids: [984] ) ] redirects: [] ) ] spids: [979 982 989 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'FSTAB='> name:FSTAB) op: assign_op.Equal rhs: {($ Id.VSub_Number 1)} spids: [995] ) ] redirects: [] ) ] spids: [992 993 999 -1] ) ] redirects: [] ) ] spids: [956 969] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_Pound '#')} {<Id.Lit_Equals '='>} {<1>} {<-o>} {(DQ ($ Id.VSub_DollarName SFLAG))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ALTM='> name:ALTM) op: assign_op.Equal rhs: {<'/var/tmp/mount'> ($ Id.VSub_Dollar '$')} spids: [1040] ) ] redirects: [] ) (C {<rm>} {<-f>} {($ Id.VSub_DollarName ALTM)}) ] spids: [1018 1037] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName FSTAB))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ )} {<-a>} {<Id.KW_Bang '!'>} {<-s>} {(DQ ($ Id.VSub_DollarName FSTAB))} {<Id.Lit_RBracket ']'>} ) ] ) action: [ (C {<echo>} {(DQ <'mountall: file system table ('> ($ Id.VSub_DollarName FSTAB) <') not found'>)} ) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] spids: [1054 1080] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName GFLAG))} {<Id.Lit_Equals '='>} {(DQ <g>)} {<-a>} {(DQ ($ Id.VSub_DollarName RFLAG) ($ Id.VSub_DollarName LFLAG))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ )} {<-o>} {(DQ ($ Id.VSub_DollarName RFLAG))} {<Id.Lit_Equals '='>} {(DQ <r>)} {<-a>} {(DQ ($ Id.VSub_DollarName GFLAG) ($ Id.VSub_DollarName LFLAG))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ )} {<-o>} {(DQ ($ Id.VSub_DollarName LFLAG))} {<Id.Lit_Equals '='>} {(DQ <l>)} {<-a>} {(DQ ($ Id.VSub_DollarName RFLAG) ($ Id.VSub_DollarName GFLAG))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ )} {<Id.Lit_RBracket ']'>} ) ] ) action: [(C {<usage>} {(DQ <'options -g, -r and -l are mutually exclusive'>)})] spids: [1108 1191] ) ] 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 are incompatible'>)}) ] ) ] spids: [1203 1228] ) ] 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 are incompatible'>)}) ] ) ] spids: [1253 1278] ) ] else_action: [] redirects: [] ) (command.Simple words: [{<exec>}] redirects: [ (redir op: <Id.Redir_Less '<'> loc: (redir_loc.Fd fd:0) arg: {($ Id.VSub_DollarName FSTAB)} ) ] more_env: [] do_fork: T ) (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands: [ (C {<read>} {<special>} {<fsckdev>} {<mountp>} {<fstype>} {<fsckpass>} {<automnt>} {<mntopts>}) ] ) body: (command.DoGroup children: [ (command.Case to_match: {($ Id.VSub_DollarName special)} arms: [ (case_arm pat_list: [{(SQ <'#'>) <Id.Lit_Star '*'>} {(SQ )}] action: [(command.ControlFlow token:<Id.ControlFlow_Continue continue>)] spids: [1384 1393 1401 -1] ) (case_arm pat_list: [{(SQ <->)}] action: [(command.ControlFlow token:<Id.ControlFlow_Continue continue>)] spids: [1404 1407 -1 1416] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName automnt))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ <yes>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [(command.ControlFlow token:<Id.ControlFlow_Continue continue>)] spids: [1420 1438] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName FSType))} {<-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: [1447 1471] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-n>} {(DQ ($ Id.VSub_DollarName GFLAG))} {<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> ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<isglobal>} {(DQ ($ Id.VSub_DollarName mntopts))}) (command.ControlFlow token: <Id.ControlFlow_Continue continue> ) ] ) ] spids: [1513 1526] ) ] 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> ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<isglobal>} {(DQ ($ Id.VSub_DollarName mntopts))}) (command.ControlFlow token: <Id.ControlFlow_Continue continue> ) ] ) ] spids: [1562 1575] ) ] 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: [1611 1624] ) ] 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 <->)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [ {<echo>} { (DQ <'mountall: FSType of '> ($ Id.VSub_DollarName special) <' cannot be identified'> ) } ] 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_Continue continue>) ] spids: [1646 1663] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName ALTM))} {<-a>} {(DQ ($ Id.VSub_DollarName mntopts))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ <->)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OPTIONS='> name:OPTIONS) op: assign_op.Equal rhs: {(DQ <'-o '> ($ Id.VSub_DollarName mntopts))} spids: [1712] ) ] redirects: [] ) ] spids: [1685 1709] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'OPTIONS='> name:OPTIONS) op: assign_op.Equal rhs: {(DQ )} spids: [1725] ) ] redirects: [] ) ] redirects: [] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.Simple words: [ {<'/usr/bin/grep'>} {(DQ <'\t'> ($ Id.VSub_DollarName mountp) <'\t'>)} {<'/etc/mnttab'>} ] 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>} ) ] more_env: [] do_fork: T ) (command.ControlFlow token:<Id.ControlFlow_Continue continue>) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName fsckdev))} {<Id.Lit_Equals '='>} {(DQ <->)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<saveentry>} {($ Id.VSub_DollarName fstype)} {(DQ ($ Id.VSub_DollarName OPTIONS))} {($ Id.VSub_DollarName special)} {($ Id.VSub_DollarName mountp)} ) (command.ControlFlow token:<Id.ControlFlow_Continue continue>) ] spids: [1780 1797] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-x>} {<'/usr/lib/fs/'> ($ Id.VSub_DollarName fstype) <'/fsckall'>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'found='> name:found) op: assign_op.Equal rhs: {<no>} spids: [1884] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName fsckall_fstypes))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ )} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ForEach iter_names: [fst] iterable: (for_iter.Words words: [{($ Id.VSub_DollarName fsckall_fstypes)}] ) body: (command.DoGroup children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName fst))} {<Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName fstype))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'found='> name: found ) op: assign_op.Equal rhs: {<yes>} spids: [1942] ) ] redirects: [] ) (command.ControlFlow token: <Id.ControlFlow_Break break> ) ] spids: [1921 1939] ) ] else_action: [] redirects: [] ) ] ) redirects: [] ) ] spids: [1888 1906] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName found)} {<Id.Lit_Equals '='>} {<no>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'fsckall_fstypes='> name: fsckall_fstypes ) op: assign_op.Equal rhs: { (DQ ($ Id.VSub_DollarName fsckall_fstypes) <' '> (${ Id.VSub_Name fstype) ) } spids: [1975] ) ] redirects: [] ) ] spids: [1958 1972] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'cmd='> name:cmd) op: assign_op.Equal rhs: { (DQ (${ Id.VSub_Name fstype) <'_fscklist='> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') (${ Id.VSub_Name fstype) <'_fscklist '> ($ Id.VSub_DollarName fsckdev) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') ) } spids: [2005] ) ] redirects: [] ) (C {<eval>} {($ Id.VSub_DollarName cmd)}) (C {<saveentry>} {($ Id.VSub_DollarName fstype)} {(DQ ($ Id.VSub_DollarName OPTIONS))} {($ Id.VSub_DollarName special)} {($ Id.VSub_DollarName mountp)} ) (command.ControlFlow token:<Id.ControlFlow_Continue continue>) ] spids: [1847 1860] ) ] else_action: [] redirects: [] ) (command.Simple words: [ {<'/usr/sbin/fsck'>} {<-m>} {<-F>} {($ Id.VSub_DollarName fstype)} {($ Id.VSub_DollarName fsckdev)} ] 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>}) ] more_env: [] do_fork: T ) (command.Case to_match: {($ Id.VSub_QMark '?')} arms: [ (case_arm pat_list: [{<0>} {<40>}] action: [ (C {<saveentry>} {($ Id.VSub_DollarName fstype)} {(DQ ($ Id.VSub_DollarName OPTIONS))} {($ Id.VSub_DollarName special)} {($ Id.VSub_DollarName mountp)} ) (command.ControlFlow token:<Id.ControlFlow_Continue continue>) ] spids: [2094 2097 2115 -1] ) (case_arm pat_list: [{<32>}] action: [ (C {<checkfs>} {($ Id.VSub_DollarName fsckdev)} {($ Id.VSub_DollarName fstype)} {($ Id.VSub_DollarName mountp)} ) (C {<saveentry>} {($ Id.VSub_DollarName fstype)} {(DQ ($ Id.VSub_DollarName OPTIONS))} {($ Id.VSub_DollarName special)} {($ Id.VSub_DollarName mountp)} ) (command.ControlFlow token:<Id.ControlFlow_Continue continue>) ] spids: [2118 2119 2146 -1] ) (case_arm pat_list: [{<33>}] action: [(C {<echo>} {(DQ ($ Id.VSub_DollarName special) <' already mounted'>)})] spids: [2149 2150 2164 -1] ) (case_arm pat_list: [{<34>}] action: [ (C {<echo>} {(DQ <'Cannot stat '> ($ Id.VSub_DollarName fsckdev) <' - ignoring'>)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'err='> name:err) op: assign_op.Equal rhs: {<1>} spids: [2183] ) ] redirects: [] ) ] spids: [2167 2168 2187 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [ (C {<echo>} {(DQ ($ Id.VSub_DollarName fsckdev) <' uncorrectable error'>)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'err='> name:err) op: assign_op.Equal rhs: {<1>} spids: [2205] ) ] redirects: [] ) ] spids: [2190 2191 2209 -1] ) ] redirects: [] ) ] ) redirects: [] ) (command.ForEach iter_names: [fst] iterable: (for_iter.Words words:[{($ Id.VSub_DollarName fsckall_fstypes)}]) body: (command.DoGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'cmd='> name:cmd) op: assign_op.Equal rhs: { (DQ <'/usr/lib/fs/'> ($ Id.VSub_DollarName fst) <'/fsckall '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\$'> ch: '$' ) (${ Id.VSub_Name fst) <_fscklist> ) } spids: [2237] ) ] redirects: [] ) (C {<eval>} {($ Id.VSub_DollarName cmd)}) (command.Case to_match: {($ Id.VSub_QMark '?')} arms: [ (case_arm pat_list:[{<0>}] action:[] spids:[2263 2264 2270 -1]) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [ (C {<echo>} {(DQ <'fsckall failed with exit code '>) ($ Id.VSub_QMark '?') (DQ <.>)}) (C {<checkmessage>}) ] spids: [2274 2275 2295 -1] ) ] redirects: [] ) ] ) redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName ALTM))} {<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 '!'>} {<-f>} {(DQ ($ Id.VSub_DollarName ALTM))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [(command.ControlFlow token:<Id.ControlFlow_Exit exit>)] spids: [2317 2332] ) ] else_action: [] redirects: [] ) (C {<'/sbin/sh'>} {($ Id.VSub_DollarName ALTM)}) (C {<'/usr/bin/rm'>} {<-f>} {($ Id.VSub_DollarName ALTM)}) (command.ControlFlow token:<Id.ControlFlow_Exit exit>) ] spids: [2303 2314] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-n>} {(DQ ($ Id.VSub_DollarName FSType))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<'/sbin/mount'>} {<-a>} {<-F>} {($ Id.VSub_DollarName FSType)}) (command.ControlFlow token:<Id.ControlFlow_Exit exit>) ] spids: [2361 2374] ) ] 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_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<'/sbin/mount'>} {<-a>} {<-F>} {<nfs>}) (C {<'/sbin/mount'>} {<-a>} {<-F>} {<smbfs>}) (command.ControlFlow token:<Id.ControlFlow_Exit exit>) ] spids: [2397 2408] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName LFLAG))} {<-o>} {(DQ ($ Id.VSub_DollarName GFLAG))} {<-o>} {($ Id.VSub_DollarName err)} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {<0>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<Id.Lit_LBracket '['>} {<-z>} {(DQ ($ Id.VSub_DollarName mntlist))} {<Id.Lit_RBracket ']'>} ) (C {<'/sbin/mount'>} {<-a>} {($ Id.VSub_DollarName mntlist)}) ] ) (command.ControlFlow token:<Id.ControlFlow_Exit exit>) ] spids: [2434 2460] ) ] else_action: [] redirects: [] ) (C {<'/sbin/mount'>} {<-a>}) ] )