(command.CommandList children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:PATH) op: assign_op.Equal rhs: {</sbin> <Id.Lit_Other ':'> </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 '$('> command_list: (command.CommandList children:[(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: (command.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: [ (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$KERNEL'))} {<Id.Lit_Equals '='>} {<Linux>} {<Id.Lit_RBracket ']'>} ) ] action: [ (command.If arms: [ (if_arm cond: [ (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.Redir op:<Id.Redir_GreatAnd '>&'> fd:-1 arg_word:{<2>})] ) (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.Redir op:<Id.Redir_GreatAnd '>&'> fd:-1 arg_word:{<2>})] ) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<3>}) ] spids: [299 300 318 -1] ) ] ) ] )