(command.CommandList children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:PATH) op: assign_op.Equal rhs: {<'/sbin'> <Id.Lit_Colon ':'> <'/bin'>} spids: [46] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TTYGRP) op: assign_op.Equal rhs: {<5>} spids: [51] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TTYMODE) op: assign_op.Equal rhs: {<620>} spids: [54] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {<-f>} {<'/etc/default/devpts'>} {<Id.Lit_RBracket ']'>}) (C {<.>} {<'/etc/default/devpts'>}) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:KERNEL) op: assign_op.Equal rhs: {(DQ (command_sub left_token:<Id.Left_DollarParen '$('> child:(C {<uname>} {<-s>})))} spids: [72] ) ] ) (C {<.>} {<'/lib/lsb/init-functions'>}) (C {<.>} {<'/lib/init/vars.sh'>}) (C {<.>} {<'/lib/init/tmpfs.sh'>}) (C {<.>} {<'/lib/init/mount-functions.sh'>}) (command.ShFunction name: mount_filesystems body: (BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:MNTMODE) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_Number '$1'))} spids: [114] ) ] ) (C {<mount_shm>} {(DQ ($ Id.VSub_DollarName '$MNTMODE'))}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$KERNEL'))} {<Id.Lit_Equals '='>} {<Linux>} {<Id.Lit_RBracket ']'>} ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-d>} {<'/dev/pts'>} {<Id.Lit_RBracket ']'>} ) ] ) action: [ (C {<mkdir>} {<--mode> <Id.Lit_Equals '='> <755>} {<'/dev/pts'>}) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {<-x>} {<'/sbin/restorecon'>} {<Id.Lit_RBracket ']'>} ) (C {<'/sbin/restorecon'>} {<'/dev/pts'>}) ] ) ] spids: [155 168] ) ] ) (C {<domount>} {(DQ ($ Id.VSub_DollarName '$MNTMODE'))} {<devpts>} {(DQ )} {<'/dev/pts'>} {<devpts>} { (DQ <'-onoexec,nosuid,gid='> ($ Id.VSub_DollarName '$TTYGRP') <',mode='> ($ Id.VSub_DollarName '$TTYMODE') ) } ) ] spids: [137 152] ) ] ) ] ) ) (command.Case to_match: {(DQ ($ Id.VSub_Number '$1'))} arms: [ (case_arm pat_list: [{(DQ )}] action: [ (command.Simple words: [ {<echo>} {(DQ <'Warning: mountdevsubfs should be called with the \'start\' argument.'>)} ] redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] do_fork: T ) (C {<mount_filesystems>} {<mount_noupdate>}) ] spids: [235 237 255 -1] ) (case_arm pat_list: [{<start>}] action: [(C {<mount_filesystems>} {<mount_noupdate>})] spids: [258 259 267 -1] ) (case_arm pat_list: [{<restart>} {<reload>} {<force-reload>}] action: [(C {<mount_filesystems>} {<remount>})] spids: [270 275 283 -1] ) (case_arm pat_list:[{<stop>} {<status>}] spids:[286 289 296 -1]) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [ (command.Simple words: [{<echo>} {(DQ <'Usage: mountdevsubfs [start|stop]'>)}] redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] do_fork: T ) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<3>}) ] spids: [299 300 318 -1] ) ] ) ] )