(command.CommandList children: [ (command.Case to_match: {($ Id.VSub_Number '$1')} arms: [ (case_arm pat_list: [{<-n>}] action: [ (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:e) op: assign_op.Equal rhs: {<echo>} spids: [19] ) ] ) terminator: <Id.Op_Semi _> ) (C {<shift>}) ] spids: [16 17 25 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:e) op: assign_op.Equal rhs: (word.Empty) spids: [33] ) ] ) ] spids: [30 31 -1 35] ) ] ) (command.Case to_match: {($ Id.VSub_Pound '$#') <Id.Lit_Colon ':'> ($ Id.VSub_Number '$1')} arms: [ (case_arm pat_list: [{<1> <Id.Lit_Colon ':'> <std>}] action: [ (C {<set>} {<-> ($ Id.VSub_Hyphen '$-')} {<mem>} {<fd0>} {<fd1>} {<fd0p0>} {<fd1p0>} {<c0d0>} {<c0d0p0>} {<c0d0p0s0>} {<c0d1>} {<c0d1p0>} {<c0d1p0s0>} {<c0d2>} {<c0d2p0>} {<c0d2p0s0>} {<c0d3>} {<c0d3p0>} {<c0d3p0s0>} {<c0d4>} {<c0d4p0>} {<c0d4p0s0>} {<c0d5>} {<c0d5p0>} {<c0d5p0s0>} {<c0d6>} {<c0d6p0>} {<c0d6p0s0>} {<c0d7>} {<c0d7p0>} {<c0d7p0s0>} {<c1d0>} {<c1d0p0>} {<c1d0p0s0>} {<c1d1>} {<c1d1p0>} {<c1d1p0s0>} {<c1d2>} {<c1d2p0>} {<c1d2p0s0>} {<c1d3>} {<c1d3p0>} {<c1d3p0s0>} {<c1d4>} {<c1d4p0>} {<c1d4p0s0>} {<c1d5>} {<c1d5p0>} {<c1d5p0s0>} {<c1d6>} {<c1d6p0>} {<c1d6p0s0>} {<c1d7>} {<c1d7p0>} {<c1d7p0s0>} {<tty>} {<ttyc1>} {<ttyc2>} {<ttyc3>} {<tty00>} {<tty01>} {<tty02>} {<tty03>} {<ttyp0>} {<ttyp1>} {<ttyp2>} {<ttyp3>} {<ttyp4>} {<ttyp5>} {<ttyp6>} {<ttyp7>} {<ttyp8>} {<ttyp9>} {<ttypa>} {<ttypb>} {<ttypc>} {<ttypd>} {<ttype>} {<ttypf>} {<ttyq0>} {<ttyq1>} {<ttyq2>} {<ttyq3>} {<ttyq4>} {<ttyq5>} {<ttyq6>} {<ttyq7>} {<ttyq8>} {<ttyq9>} {<ttyqa>} {<ttyqb>} {<ttyqc>} {<ttyqd>} {<ttyqe>} {<ttyqf>} {<eth>} {<klog>} {<random>} {<filter>} ) ] spids: [46 49 283 -1] ) (case_arm pat_list: [ {<0> <Id.Lit_Colon ':'>} {<1> <Id.Lit_Colon ':'> <-> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\?'>)} ] action: [ (command.Simple words: [{<cat>}] redirects: [ (redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>}) (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_span_id: 329 stdin_parts: [ <'Usage:\t'> ($ Id.VSub_Number '$0') <' [-n] key ...\n'> <'Where key is one of the following:\n'> < ' ram mem kmem null boot zero\t # One of these makes all these memory devices\n' > <' fd0 fd1 ...\t\t # Floppy devices for drive 0, 1, ...\n'> < ' fd0p0 fd1p0 ...\t # Make floppy partitions fd0p[0-3], fd1p[0-3], ...\n' > <' c0d0 c0d1 ...\t\t # Make disks c0d0, c0d1, ...\n'> <' c0d0p0 c0d1p0 ...\t # Make partitions c0d0p[0-3], c0d1p[0-3], ...\n'> < ' c0d0p0s0 c0d1p0s0 ...\t # Subparts c0d0p[0-3]s[0-3], c0d1p[0-3]s[0-3], ...\n' > <' c1d0(p0)(s0)\t\t # Likewise for controller 1\n'> <' c0t0 c0t1 c1t0 ...\t # Make tape devices c0t0, c0t0n, c0t1, ...\n'> <' console lp tty log\t # One of these makes all four\n'> <' ttyc1 ... ttyc7 # Virtual consoles\n'> <' tty00 ... tty03 # Make serial lines\n'> <' ttyp0 ... ttyq0 ... # Make tty, pty pairs\n'> <' eth ip tcp udp\t # One of these makes some TCP/IP devices\n'> <' audio mixer\t\t # Make audio devices\n'> <' klog # Make /dev/klog\n'> <' random # Make /dev/random, /dev/urandom\n'> <' kbd # Make /dev/kbd\n'> <' kbdaux # Make /dev/kbdaux\n'> <' filter # Make /dev/filter\n'> <' video # Make /dev/video\n'> <' std\t\t\t # All standard devices\n'> ] ) ) ] do_fork: T ) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] spids: [285 292 -1 335] ) ] ) (C {<umask>} {<077>}) (command.ShAssignment pairs: [(assign_pair lhs:(sh_lhs_expr.Name name:ex) op:assign_op.Equal rhs:{<0>} spids:[342])] ) (command.ForEach iter_names: [dev] iterable: (for_iter.Args) body: (command.DoGroup children: [ (command.Case to_match: {($ Id.VSub_DollarName '$dev')} arms: [ (case_arm pat_list: [{<c0> <Id.Lit_Star '*'>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:maj) op: assign_op.Equal rhs: {<3>} spids: [367] ) ] ) ] spids: [363 365 370 -1] ) (case_arm pat_list: [{<c1> <Id.Lit_Star '*'>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:maj) op: assign_op.Equal rhs: {<8>} spids: [377] ) ] ) ] spids: [373 375 380 -1] ) (case_arm pat_list: [{<c2> <Id.Lit_Star '*'>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:maj) op: assign_op.Equal rhs: {<10>} spids: [387] ) ] ) ] spids: [383 385 390 -1] ) (case_arm pat_list: [{<c3> <Id.Lit_Star '*'>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:maj) op: assign_op.Equal rhs: {<12>} spids: [397] ) ] ) ] spids: [393 395 400 -1] ) ] ) (command.Case to_match: {($ Id.VSub_DollarName '$dev')} arms: [ (case_arm pat_list: [{<ram>} {<mem>} {<kmem>} {<null>} {<boot>} {<zero>} {<imgrd>}] action: [ (command.Sentence child: (C {($ Id.VSub_DollarName '$e')} {<mknod>} {<ram>} {<b>} {<1>} {<0>}) terminator: <Id.Op_Semi _> ) (C {($ Id.VSub_DollarName '$e')} {<chmod>} {<600>} {<ram>}) (command.Sentence child: (C {($ Id.VSub_DollarName '$e')} {<mknod>} {<mem>} {<c>} {<1>} {<1>}) terminator: <Id.Op_Semi _> ) (C {($ Id.VSub_DollarName '$e')} {<chmod>} {<640>} {<mem>}) (command.Sentence child: (C {($ Id.VSub_DollarName '$e')} {<mknod>} {<kmem>} {<c>} {<1>} {<2>}) terminator: <Id.Op_Semi _> ) (C {($ Id.VSub_DollarName '$e')} {<chmod>} {<640>} {<kmem>}) (command.Sentence child: (C {($ Id.VSub_DollarName '$e')} {<mknod>} {<null>} {<c>} {<1>} {<3>}) terminator: <Id.Op_Semi _> ) (C {($ Id.VSub_DollarName '$e')} {<chmod>} {<666>} {<null>}) (command.Sentence child: (C {($ Id.VSub_DollarName '$e')} {<mknod>} {<boot>} {<b>} {<1>} {<4>}) terminator: <Id.Op_Semi _> ) (C {($ Id.VSub_DollarName '$e')} {<chmod>} {<600>} {<ram>}) (command.Sentence child: (C {($ Id.VSub_DollarName '$e')} {<mknod>} {<zero>} {<c>} {<1>} {<5>}) terminator: <Id.Op_Semi _> ) (C {($ Id.VSub_DollarName '$e')} {<chmod>} {<644>} {<zero>}) (command.Sentence child: (C {($ Id.VSub_DollarName '$e')} {<mknod>} {<imgrd>} {<b>} {<1>} {<6>}) terminator: <Id.Op_Semi _> ) (C {($ Id.VSub_DollarName '$e')} {<chmod>} {<644>} {<zero>}) (command.ForEach iter_names: [n] iterable: (for_iter.Words words:[{<0>} {<1>} {<2>} {<3>} {<4>} {<5>}]) body: (command.DoGroup children: [ (command.Sentence child: (C {($ Id.VSub_DollarName '$e')} {<mknod>} {<ram> ($ Id.VSub_DollarName '$n')} {<b>} {<1>} { (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Plus left: {<Id.Lit_Digits 7>} right: {($ Id.VSub_DollarName '$n')} ) ) } ) terminator: <Id.Op_Semi _> ) (C {($ Id.VSub_DollarName '$e')} {<chmod>} {<600>} {<ram> ($ Id.VSub_DollarName '$n')} ) ] ) ) (C {($ Id.VSub_DollarName '$e')} {<chgrp>} {<kmem>} {<ram> <Id.Lit_Star '*'>} {<mem>} {<kmem>} {<null>} {<boot>} {<zero>} {<imgrd>} ) ] spids: [414 427 667 -1] ) (case_arm pat_list: [{<Id.Lit_ArrayLhsOpen 'fd['> <0-3> <Id.Lit_RBracket ']'>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:d) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<expr>} {($ Id.VSub_DollarName '$dev')} {<Id.Lit_Colon ':'>} {(SQ <'.*\\(.\\)'>)} ) ) } spids: [684] ) ] ) (C {($ Id.VSub_DollarName '$e')} {<mknod>} {($ Id.VSub_DollarName '$dev')} {<b>} {<2>} {($ Id.VSub_DollarName '$d')} ) (C {($ Id.VSub_DollarName '$e')} {<chmod>} {<666>} {($ Id.VSub_DollarName '$dev')}) ] spids: [670 673 729 -1] ) (case_arm pat_list: [ {<Id.Lit_ArrayLhsOpen 'pc['> <0-3> <Id.Lit_RBracket ']'>} {<Id.Lit_ArrayLhsOpen 'at['> <0-3> <Id.Lit_RBracket ']'>} {<Id.Lit_ArrayLhsOpen 'qd['> <0-3> <Id.Lit_RBracket ']'>} {<Id.Lit_ArrayLhsOpen 'ps['> <0-3> <Id.Lit_RBracket ']'>} {<Id.Lit_ArrayLhsOpen 'pat['> <0-3> <Id.Lit_RBracket ']'>} {<Id.Lit_ArrayLhsOpen 'qh['> <0-3> <Id.Lit_RBracket ']'>} {<Id.Lit_ArrayLhsOpen 'PS['> <0-3> <Id.Lit_RBracket ']'>} ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:d) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<expr>} {($ Id.VSub_DollarName '$dev')} {<Id.Lit_Colon ':'>} {(SQ <'.*\\(.\\)'>)} ) ) } spids: [770] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:m) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$d')} spids: [793] ) ] ) (command.Sentence child: (C {($ Id.VSub_DollarName '$e')} {<mknod>} {<pc> ($ Id.VSub_DollarName '$d')} {<b>} {<2>} {($ Id.VSub_DollarName '$m')} ) terminator: <Id.Op_Semi _> ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:m) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<expr>} {($ Id.VSub_DollarName '$m')} {<Id.Lit_Other '+'>} {<4>}) ) } spids: [815] ) ] ) (command.Sentence child: (C {($ Id.VSub_DollarName '$e')} {<mknod>} {<at> ($ Id.VSub_DollarName '$d')} {<b>} {<2>} {($ Id.VSub_DollarName '$m')} ) terminator: <Id.Op_Semi _> ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:m) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<expr>} {($ Id.VSub_DollarName '$m')} {<Id.Lit_Other '+'>} {<4>}) ) } spids: [843] ) ] ) (command.Sentence child: (C {($ Id.VSub_DollarName '$e')} {<mknod>} {<qd> ($ Id.VSub_DollarName '$d')} {<b>} {<2>} {($ Id.VSub_DollarName '$m')} ) terminator: <Id.Op_Semi _> ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:m) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<expr>} {($ Id.VSub_DollarName '$m')} {<Id.Lit_Other '+'>} {<4>}) ) } spids: [871] ) ] ) (command.Sentence child: (C {($ Id.VSub_DollarName '$e')} {<mknod>} {<ps> ($ Id.VSub_DollarName '$d')} {<b>} {<2>} {($ Id.VSub_DollarName '$m')} ) terminator: <Id.Op_Semi _> ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:m) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<expr>} {($ Id.VSub_DollarName '$m')} {<Id.Lit_Other '+'>} {<4>}) ) } spids: [899] ) ] ) (command.Sentence child: (C {($ Id.VSub_DollarName '$e')} {<mknod>} {<pat> ($ Id.VSub_DollarName '$d')} {<b>} {<2>} {($ Id.VSub_DollarName '$m')} ) terminator: <Id.Op_Semi _> ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:m) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<expr>} {($ Id.VSub_DollarName '$m')} {<Id.Lit_Other '+'>} {<4>}) ) } spids: [927] ) ] ) (command.Sentence child: (C {($ Id.VSub_DollarName '$e')} {<mknod>} {<qh> ($ Id.VSub_DollarName '$d')} {<b>} {<2>} {($ Id.VSub_DollarName '$m')} ) terminator: <Id.Op_Semi _> ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:m) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<expr>} {($ Id.VSub_DollarName '$m')} {<Id.Lit_Other '+'>} {<4>}) ) } spids: [955] ) ] ) (command.Sentence child: (C {($ Id.VSub_DollarName '$e')} {<mknod>} {<PS> ($ Id.VSub_DollarName '$d')} {<b>} {<2>} {($ Id.VSub_DollarName '$m')} ) terminator: <Id.Op_Semi _> ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:m) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<expr>} {($ Id.VSub_DollarName '$m')} {<Id.Lit_Other '+'>} {<4>}) ) } spids: [983] ) ] ) (C {($ Id.VSub_DollarName '$e')} {<chmod>} {<666>} {<pc> ($ Id.VSub_DollarName '$d')} {<at> ($ Id.VSub_DollarName '$d')} {<qd> ($ Id.VSub_DollarName '$d')} {<ps> ($ Id.VSub_DollarName '$d')} {<pat> ($ Id.VSub_DollarName '$d')} {<qh> ($ Id.VSub_DollarName '$d')} {<PS> ($ Id.VSub_DollarName '$d')} ) ] spids: [732 759 1026 -1] ) (case_arm pat_list: [ {<Id.Lit_ArrayLhsOpen 'fd['> <0-3> <Id.Lit_RBracket ']'> <Id.Lit_ArrayLhsOpen 'p['> <0-3> <Id.Lit_RBracket ']'> } ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:n) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<expr>} {($ Id.VSub_DollarName '$dev')} {<Id.Lit_Colon ':'>} {(SQ <'\\(.*\\)..'>)} ) ) } spids: [1046] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:d) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<expr>} {($ Id.VSub_DollarName '$dev')} {<Id.Lit_Colon ':'>} {(SQ <'..\\(.\\)'>)} ) ) } spids: [1069] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:m) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<expr>} {<112>} {<Id.Lit_Other '+'>} {($ Id.VSub_DollarName '$d')}) ) } spids: [1092] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:alldev) op: assign_op.Equal rhs: (word.Empty) spids: [1109] ) ] ) (command.ForEach iter_names: [p] iterable: (for_iter.Words words:[{<0>} {<1>} {<2>} {<3>}]) body: (command.DoGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:m) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<expr>} {<112>} {<Id.Lit_Other '+'>} {($ Id.VSub_DollarName '$d')} {<Id.Lit_Other '+'>} {($ Id.VSub_DollarName '$p')} {(SQ <'*'>)} {<4>} ) ) } spids: [1131] ) ] ) (C {($ Id.VSub_DollarName '$e')} {<mknod>} {(${ Id.VSub_Name n) <p> (${ Id.VSub_Name p)} {<b>} {<2>} {($ Id.VSub_DollarName '$m')} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:alldev) op: assign_op.Equal rhs: { (DQ ($ Id.VSub_DollarName '$alldev') <' '> (${ Id.VSub_Name n) <p> (${ Id.VSub_Name p) ) } spids: [1180] ) ] ) ] ) ) (C {($ Id.VSub_DollarName '$e')} {<chmod>} {<666>} {($ Id.VSub_DollarName '$alldev')}) ] spids: [1029 1035 1206 -1] ) (case_arm pat_list: [ {<Id.Lit_ArrayLhsOpen 'c['> <0-3> <Id.Lit_RBracket ']'> <Id.Lit_ArrayLhsOpen 'd['> <0-7> <Id.Lit_RBracket ']'> } ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:d) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<expr>} {($ Id.VSub_DollarName '$dev')} {<Id.Lit_Colon ':'>} {(SQ <'...\\(.\\)'>)} ) ) } spids: [1222] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:m) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<expr>} {($ Id.VSub_DollarName '$d')} {(SQ <'*'>)} {<5>}) ) } spids: [1245] ) ] ) (C {($ Id.VSub_DollarName '$e')} {<mknod>} {($ Id.VSub_DollarName '$dev')} {<b>} {($ Id.VSub_DollarName '$maj')} {($ Id.VSub_DollarName '$m')} ) (C {($ Id.VSub_DollarName '$e')} {<chmod>} {<600>} {($ Id.VSub_DollarName '$dev')}) ] spids: [1209 1215 1286 -1] ) (case_arm pat_list: [ {<Id.Lit_ArrayLhsOpen 'c['> <0-3> <Id.Lit_RBracket ']'> <Id.Lit_ArrayLhsOpen 'd['> <0-7> <Id.Lit_RBracket ']'> <Id.Lit_ArrayLhsOpen 'p['> <0-3> <Id.Lit_RBracket ']'> } ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:n) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<expr>} {($ Id.VSub_DollarName '$dev')} {<Id.Lit_Colon ':'>} {(SQ <'\\(.*\\).'>)} ) ) } spids: [1305] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:d) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<expr>} {($ Id.VSub_DollarName '$dev')} {<Id.Lit_Colon ':'>} {(SQ <'...\\(.\\)'>)} ) ) } spids: [1328] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:alldev) op: assign_op.Equal rhs: (word.Empty) spids: [1351] ) ] ) (command.ForEach iter_names: [p] iterable: (for_iter.Words words:[{<0>} {<1>} {<2>} {<3>}]) body: (command.DoGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:m) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<expr>} {($ Id.VSub_DollarName '$d')} {(SQ <'*'>)} {<5>} {<Id.Lit_Other '+'>} {<1>} {<Id.Lit_Other '+'>} {($ Id.VSub_DollarName '$p')} ) ) } spids: [1373] ) ] ) (C {($ Id.VSub_DollarName '$e')} {<mknod>} {($ Id.VSub_DollarName '$n') ($ Id.VSub_DollarName '$p')} {<b>} {($ Id.VSub_DollarName '$maj')} {($ Id.VSub_DollarName '$m')} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:alldev) op: assign_op.Equal rhs: { (DQ ($ Id.VSub_DollarName '$alldev') <' '> ($ Id.VSub_DollarName '$n') ($ Id.VSub_DollarName '$p') ) } spids: [1414] ) ] ) ] ) ) (command.Pipeline children: [ (C {<echo>} {($ Id.VSub_DollarName '$alldev')}) (C {<xargs>} {($ Id.VSub_DollarName '$e')} {<chmod>} {<600>}) ] negated: F ) ] spids: [1289 1298 1441 -1] ) (case_arm pat_list: [ {<Id.Lit_ArrayLhsOpen 'c['> <0-3> <Id.Lit_RBracket ']'> <Id.Lit_ArrayLhsOpen 'd['> <0-7> <Id.Lit_RBracket ']'> <Id.Lit_ArrayLhsOpen 'p['> <0-3> <Id.Lit_RBracket ']'> <Id.Lit_ArrayLhsOpen 's['> <0-3> <Id.Lit_RBracket ']'> } ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:n) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<expr>} {($ Id.VSub_DollarName '$dev')} {<Id.Lit_Colon ':'>} {(SQ <'\\(.*\\)...'>)} ) ) } spids: [1463] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:d) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<expr>} {($ Id.VSub_DollarName '$dev')} {<Id.Lit_Colon ':'>} {(SQ <'...\\(.\\)'>)} ) ) } spids: [1486] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:alldev) op: assign_op.Equal rhs: (word.Empty) spids: [1509] ) ] ) (command.ForEach iter_names: [p] iterable: (for_iter.Words words:[{<0>} {<1>} {<2>} {<3>}]) body: (command.DoGroup children: [ (command.ForEach iter_names: [s] iterable: (for_iter.Words words:[{<0>} {<1>} {<2>} {<3>}]) body: (command.DoGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:m) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<expr>} {<128>} {<Id.Lit_Other '+'>} {($ Id.VSub_DollarName '$d')} {(SQ <'*'>)} {<16>} {<Id.Lit_Other '+'>} {($ Id.VSub_DollarName '$p')} {(SQ <'*'>)} {<4>} {<Id.Lit_Other '+'>} {($ Id.VSub_DollarName '$s')} ) ) } spids: [1549] ) ] ) (C {($ Id.VSub_DollarName '$e')} {<mknod>} {(${ Id.VSub_Name n) (${ Id.VSub_Name p) <s> (${ Id.VSub_Name s)} {<b>} {($ Id.VSub_DollarName '$maj')} {($ Id.VSub_DollarName '$m')} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:alldev) op: assign_op.Equal rhs: { (DQ ($ Id.VSub_DollarName '$alldev') <' '> (${ Id.VSub_Name n) (${ Id.VSub_Name p) <s> (${ Id.VSub_Name s) ) } spids: [1608] ) ] ) ] ) ) ] ) ) (command.Pipeline children: [ (C {<echo>} {($ Id.VSub_DollarName '$alldev')}) (C {<xargs>} {($ Id.VSub_DollarName '$e')} {<chmod>} {<600>}) ] negated: F ) ] spids: [1444 1456 1646 -1] ) (case_arm pat_list: [ {<Id.Lit_ArrayLhsOpen 'c['> <0-3> <Id.Lit_RBracket ']'> <Id.Lit_ArrayLhsOpen 't['> <0-7> <Id.Lit_RBracket ']'> } {<Id.Lit_ArrayLhsOpen 'c['> <0-3> <Id.Lit_RBracket ']'> <Id.Lit_ArrayLhsOpen 't['> <0-7> <Id.Lit_RBracket ']'> <n> } ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:n) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<expr>} {($ Id.VSub_DollarName '$dev')} {<Id.Lit_Colon ':'>} {(SQ <'\\(....\\)'>)} ) ) } spids: [1670] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:t) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<expr>} {($ Id.VSub_DollarName '$dev')} {<Id.Lit_Colon ':'>} {(SQ <'...\\(.\\)'>)} ) ) } spids: [1693] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:m) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<expr>} {<64>} {<Id.Lit_Other '+'>} {($ Id.VSub_DollarName '$t')} {(SQ <'*'>)} {<2>} ) ) } spids: [1716] ) ] ) (C {($ Id.VSub_DollarName '$e')} {<mknod>} {(${ Id.VSub_Name n) <n>} {<c>} {($ Id.VSub_DollarName '$maj')} {($ Id.VSub_DollarName '$m')} ) (C {($ Id.VSub_DollarName '$e')} {<mknod>} {(${ Id.VSub_Name n)} {<c>} {($ Id.VSub_DollarName '$maj')} { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<expr>} {($ Id.VSub_DollarName '$m')} {<Id.Lit_Other '+'>} {<1>}) ) } ) (C {($ Id.VSub_DollarName '$e')} {<chmod>} {<660>} {(${ Id.VSub_Name n) <n>} {(${ Id.VSub_Name n)} ) ] spids: [1649 1663 1796 -1] ) (case_arm pat_list: [{<console>} {<lp>} {<tty>} {<log>} {<kbd>} {<kbdaux>} {<video>}] action: [ (C {($ Id.VSub_DollarName '$e')} {<mknod>} {<console>} {<c>} {<4>} {<0>}) (C {($ Id.VSub_DollarName '$e')} {<chmod>} {<600>} {<console>}) (C {($ Id.VSub_DollarName '$e')} {<chgrp>} {<tty>} {<console>}) (C {($ Id.VSub_DollarName '$e')} {<mknod>} {<tty>} {<c>} {<5>} {<0>}) (C {($ Id.VSub_DollarName '$e')} {<chmod>} {<666>} {<tty>}) (C {($ Id.VSub_DollarName '$e')} {<mknod>} {<lp>} {<c>} {<6>} {<0>}) (C {($ Id.VSub_DollarName '$e')} {<chown>} {<daemon>} {<lp>}) (C {($ Id.VSub_DollarName '$e')} {<chgrp>} {<daemon>} {<lp>}) (C {($ Id.VSub_DollarName '$e')} {<chmod>} {<200>} {<lp>}) (C {($ Id.VSub_DollarName '$e')} {<mknod>} {<log>} {<c>} {<4>} {<15>}) (C {($ Id.VSub_DollarName '$e')} {<chmod>} {<222>} {<log>}) (C {($ Id.VSub_DollarName '$e')} {<mknod>} {<kbd>} {<c>} {<4>} {<127>}) (C {($ Id.VSub_DollarName '$e')} {<mknod>} {<kbdaux>} {<c>} {<4>} {<126>}) (C {($ Id.VSub_DollarName '$e')} {<chmod>} {<660>} {<kbd>} {<kbdaux>}) (C {($ Id.VSub_DollarName '$e')} {<chgrp>} {<operator>} {<kbd>} {<kbdaux>}) (C {($ Id.VSub_DollarName '$e')} {<mknod>} {<video>} {<c>} {<4>} {<125>}) (C {($ Id.VSub_DollarName '$e')} {<chmod>} {<600>} {<video>}) (C {($ Id.VSub_DollarName '$e')} {<chgrp>} {<operator>} {<video>}) ] spids: [1799 1812 2017 -1] ) (case_arm pat_list: [{<Id.Lit_ArrayLhsOpen 'ttyc['> <1-7> <Id.Lit_RBracket ']'>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:m) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<expr>} {($ Id.VSub_DollarName '$dev')} {<Id.Lit_Colon ':'>} {(SQ <'....\\(.*\\)'>)} ) ) } spids: [2034] ) ] ) (C {($ Id.VSub_DollarName '$e')} {<mknod>} {($ Id.VSub_DollarName '$dev')} {<c>} {<4>} {($ Id.VSub_DollarName '$m')} ) (C {($ Id.VSub_DollarName '$e')} {<chgrp>} {<tty>} {($ Id.VSub_DollarName '$dev')}) (C {($ Id.VSub_DollarName '$e')} {<chmod>} {<600>} {($ Id.VSub_DollarName '$dev')}) ] spids: [2020 2023 2088 -1] ) (case_arm pat_list: [{<Id.Lit_ArrayLhsOpen 'tty0['> <0-3> <Id.Lit_RBracket ']'>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:n) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<expr>} {($ Id.VSub_DollarName '$dev')} {<Id.Lit_Colon ':'>} {(SQ <'.*\\(.\\)'>)} ) ) } spids: [2105] ) ] ) (C {($ Id.VSub_DollarName '$e')} {<mknod>} {($ Id.VSub_DollarName '$dev')} {<c>} {<4>} { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<expr>} {($ Id.VSub_DollarName '$n')} {<Id.Lit_Other '+'>} {<16>}) ) } ) (C {($ Id.VSub_DollarName '$e')} {<chmod>} {<666>} {($ Id.VSub_DollarName '$dev')}) (C {($ Id.VSub_DollarName '$e')} {<chgrp>} {<tty>} {($ Id.VSub_DollarName '$dev')}) ] spids: [2091 2094 2166 -1] ) (case_arm pat_list: [ {<Id.Lit_ArrayLhsOpen 'tty['> <p-s> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0-9a-f> <Id.Lit_RBracket ']'> } {<Id.Lit_ArrayLhsOpen 'pty['> <p-s> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0-9a-f> <Id.Lit_RBracket ']'> } ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:dev) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<expr>} {($ Id.VSub_DollarName '$dev')} {<Id.Lit_Colon ':'>} {(SQ <'...\\(..\\)'>)} ) ) } spids: [2193] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:g) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<expr>} {($ Id.VSub_DollarName '$dev')} {<Id.Lit_Colon ':'>} {(SQ <'\\(.\\)'>)} ) ) } spids: [2213] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:g) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (C {<echo>} {($ Id.VSub_DollarName '$g')}) (C {<tr>} {(SQ <pqrs>)} {(SQ <0123>)}) ] negated: F ) ) } spids: [2236] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:n) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<expr>} {($ Id.VSub_DollarName '$dev')} {<Id.Lit_Colon ':'>} {(SQ <'.\\(.\\)'>)} ) ) } spids: [2258] ) ] ) (command.Case to_match: {($ Id.VSub_DollarName '$n')} arms: [ (case_arm pat_list: [{<Id.Lit_LBracket '['> <a-f> <Id.Lit_RBracket ']'>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:n) op: assign_op.Equal rhs: {<1> (command_sub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (C {<'/bin/echo'>} {($ Id.VSub_DollarName '$n')}) (C {<tr>} {(SQ <abcdef>)} {(SQ <012345>)}) ] negated: F ) ) } spids: [2293] ) ] ) ] spids: [2288 2291 -1 2316] ) ] ) (C {($ Id.VSub_DollarName '$e')} {<mknod>} {<tty> ($ Id.VSub_DollarName '$dev')} {<c>} {<4>} { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<expr>} {($ Id.VSub_DollarName '$g')} {(SQ <'*'>)} {<16>} {<Id.Lit_Other '+'>} {($ Id.VSub_DollarName '$n')} {<Id.Lit_Other '+'>} {<128>} ) ) } ) (C {($ Id.VSub_DollarName '$e')} {<mknod>} {<pty> ($ Id.VSub_DollarName '$dev')} {<c>} {<4>} { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<expr>} {($ Id.VSub_DollarName '$g')} {(SQ <'*'>)} {<16>} {<Id.Lit_Other '+'>} {($ Id.VSub_DollarName '$n')} {<Id.Lit_Other '+'>} {<192>} ) ) } ) (C {($ Id.VSub_DollarName '$e')} {<chgrp>} {<tty>} {<tty> ($ Id.VSub_DollarName '$dev')} {<pty> ($ Id.VSub_DollarName '$dev')} ) (C {($ Id.VSub_DollarName '$e')} {<chmod>} {<666>} {<tty> ($ Id.VSub_DollarName '$dev')} {<pty> ($ Id.VSub_DollarName '$dev')} ) ] spids: [2169 2182 2414 -1] ) (case_arm pat_list: [{<eth>} {<ip>} {<tcp>} {<udp>} {<eth0>} {<ip0>} {<tcp0>} {<udp0>}] action: [ (C {($ Id.VSub_DollarName '$e')} {<mknod>} {<eth0>} {<c>} {<7>} {<0>}) (C {($ Id.VSub_DollarName '$e')} {<mknod>} {<ip0>} {<c>} {<7>} {<1>}) (C {($ Id.VSub_DollarName '$e')} {<mknod>} {<tcp0>} {<c>} {<7>} {<2>}) (C {($ Id.VSub_DollarName '$e')} {<mknod>} {<udp0>} {<c>} {<7>} {<3>}) (C {($ Id.VSub_DollarName '$e')} {<chmod>} {<600>} {<eth0>} {<ip0>}) (C {($ Id.VSub_DollarName '$e')} {<chmod>} {<666>} {<tcp0>} {<udp0>}) (C {($ Id.VSub_DollarName '$e')} {<ln>} {<-f>} {<eth0>} {<eth>}) (C {($ Id.VSub_DollarName '$e')} {<ln>} {<-f>} {<ip0>} {<ip>}) (C {($ Id.VSub_DollarName '$e')} {<ln>} {<-f>} {<tcp0>} {<tcp>}) (C {($ Id.VSub_DollarName '$e')} {<ln>} {<-f>} {<udp0>} {<udp>}) ] spids: [2417 2432 2567 -1] ) (case_arm pat_list: [{<audio>} {<mixer>}] action: [ (C {($ Id.VSub_DollarName '$e')} {<mknod>} {<audio>} {<c>} {<13>} {<0>}) (C {($ Id.VSub_DollarName '$e')} {<mknod>} {<mixer>} {<c>} {<13>} {<1>}) (C {($ Id.VSub_DollarName '$e')} {<chmod>} {<666>} {<audio>} {<mixer>}) ] spids: [2570 2573 2621 -1] ) (case_arm pat_list: [{<random>} {<urandom>}] action: [ (command.Sentence child: (C {($ Id.VSub_DollarName '$e')} {<mknod>} {<random>} {<c>} {<16>} {<0>}) terminator: <Id.Op_Semi _> ) (C {($ Id.VSub_DollarName '$e')} {<chmod>} {<644>} {<random>}) (command.Sentence child: (C {($ Id.VSub_DollarName '$e')} {<mknod>} {<urandom>} {<c>} {<16>} {<0>}) terminator: <Id.Op_Semi _> ) (C {($ Id.VSub_DollarName '$e')} {<chmod>} {<644>} {<urandom>}) (C {($ Id.VSub_DollarName '$e')} {<chgrp>} {<operator>} {<random>} {<urandom>}) ] spids: [2624 2627 2689 -1] ) (case_arm pat_list: [{<klog>}] action: [ (C {($ Id.VSub_DollarName '$e')} {<mknod>} {<klog>} {<c>} {<15>} {<0>}) (C {($ Id.VSub_DollarName '$e')} {<chmod>} {<600>} {<klog>}) ] spids: [2692 2693 2722 -1] ) (case_arm pat_list: [{<filter>}] action: [ (C {($ Id.VSub_DollarName '$e')} {<mknod>} {<filter>} {<b>} {<11>} {<0>}) (C {($ Id.VSub_DollarName '$e')} {<chmod>} {<644>} {<filter>}) ] spids: [2725 2726 2755 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [ (command.Simple words: [ {<echo>} { (DQ ($ Id.VSub_Number '$0') <': don\'t know about '> ($ Id.VSub_DollarName '$dev') ) } ] redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] do_fork: T ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ex) op: assign_op.Equal rhs: {<1>} spids: [2774] ) ] ) ] spids: [2758 2759 -1 2778] ) ] ) ] ) ) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{($ Id.VSub_DollarName '$ex')}) ] )