(command.CommandList children: [ (C {<Id.KW_Set set>} {<-u> ($ Id.VSub_DollarName '$DX')}) (command.Case to_match: {($ Id.VSub_Pound '$#')} arms: [ (case_arm pat_list: [{<2>}] action: [ (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:OLDTAB) op: assign_op.Equal rhs: {($ Id.VSub_Number '$1')} spids: [115] ) ] ) terminator: <Id.Op_Semi _> ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:NEWTAB) op: assign_op.Equal rhs: {($ Id.VSub_Number '$2')} spids: [120] ) ] ) ] spids: [111 113 123 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [ (C {<echo>} { (DQ <'Usage: '> (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<basename>} {($ Id.VSub_Number '$0')}) ) <' <Input> <Output>'> ) } ) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] spids: [126 128 -1 149] ) ] ) (command.If arms: [ (if_arm cond: [ (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-r>} {($ Id.VSub_DollarName '$OLDTAB')} {<Id.Lit_RBracket ']'>} ) ] action: [ (C {<echo>} { (DQ (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<basename>} {($ Id.VSub_Number '$0')}) ) <': '> ($ Id.VSub_DollarName '$OLDTAB') <' does not exist or is unreadable.'> ) } ) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] spids: [152 164] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Simple words: [{<touch>} {($ Id.VSub_DollarName '$NEWTAB')}] redirects: [(redir op:<Id.Redir_Great '2>'> loc:(redir_loc.Fd fd:2) arg:{<'/dev/null'>})] do_fork: T ) ] action: [(C {<Id.Lit_Colon ':'>})] spids: [190 200] ) ] else_action: [ (C {<echo>} { (DQ (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<basename>} {($ Id.VSub_Number '$0')}) ) <': cannot write to '> ($ Id.VSub_DollarName '$NEWTAB') <.> ) } ) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] ) (command.Simple words: [{<cat>}] redirects: [ (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.MultiLine here_begin: {<END_OF_HEADER>} here_end_span_id: 288 stdin_parts: [ <'# /etc/bootptab: database for bootp server (/etc/bootpd)\n'> <'# This file was generated automagically\n'> <'\n'> <'# Blank lines and lines beginning with \'#\' are ignored.\n'> <'#\n'> <'# Legend:\t(see bootptab.5)\n'> <'#\tfirst field -- hostname (not indented)\n'> <'#\tbf -- bootfile\n'> <'#\tbs -- bootfile size in 512-octet blocks\n'> <'#\tcs -- cookie servers\n'> <'#\tdf -- dump file name\n'> <'#\tdn -- domain name\n'> <'#\tds -- domain name servers\n'> <'#\tef -- extension file\n'> <'#\tgw -- gateways\n'> <'#\tha -- hardware address\n'> <'#\thd -- home directory for bootfiles\n'> <'#\thn -- host name set for client\n'> <'#\tht -- hardware type\n'> <'#\tim -- impress servers\n'> <'#\tip -- host IP address\n'> <'#\tlg -- log servers\n'> <'#\tlp -- LPR servers\n'> <'#\tns -- IEN-116 name servers\n'> <'#\tra -- reply address\n'> <'#\trl -- resource location protocol servers\n'> <'#\trp -- root path\n'> <'#\tsa -- boot server address\n'> <'#\tsm -- subnet mask\n'> <'#\tsw -- swap server\n'> <'#\ttc -- template host (points to similar host entry)\n'> <'#\ttd -- TFTP directory\n'> <'#\tto -- time offset (seconds)\n'> <'#\tts -- time servers\n'> <'#\tvm -- vendor magic number\n'> <'#\tTn -- generic option tag n\n'> <'#\n'> <'# Be careful about including backslashes where they\'re needed. Weird (bad)\n'> <'# things can happen when a backslash is omitted where one is intended.\n'> <'# Also, note that generic option data must be either a string or a\n'> <'# sequence of bytes where each byte is a two-digit hex value.\n'> <'\n'> <'# First, we define a global entry which specifies the stuff every host uses.\n'> <'# (Host name lookups are relative to the domain: your.domain.name)\n'> <'\n'> ] ) ) (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName '$NEWTAB')} ) ] do_fork: T ) (command.Pipeline children: [ (command.Simple words: [{<sed>} {<-e>} {(SQ <'s/[:-]//g'>)}] redirects: [ (redir op: <Id.Redir_Less '<'> loc: (redir_loc.Fd fd:0) arg: {($ Id.VSub_DollarName '$OLDTAB')} ) ] do_fork: T ) (command.Simple words: [ {<nawk>} { (SQ <'BEGIN\t{ PART = 0 ; FIELD=0 ; BOOTPATH="unset" ; BOOTFILE="unset" }\n'> <'\t/^%%/\t{\n'> <'\t\t\t\tPART = 1\n'> < '\t\t\t\tprintf ".default:\\\\\\n\\t:ht=ether:\\\\\\n\\t:hn:\\\\\\n\\t:dn=your.domain.name:\\\\\\n\\t:ds=your,dns,servers:\\\\\\n\\t:sm=255.255.0.0:\\\\\\n\\t:hd=%s:\\\\\\n\\t:rp=%s:\\\\\\n\\t:td=%s:\\\\\\n\\t:bf=%s:\\\\\\n\\t:to=auto:\\n\\n", BOOTPATH, BOOTPATH, BOOTPATH, BOOTFILE\n' > <'\t\t\t\tnext\n'> <'\t\t\t}\n'> <'\t/^$/\t{ next }\n'> <'\t/^#/\t{ next }\n'> <'\t\t{\n'> <'\t\t\tif ( PART == 0 && FIELD < 2 )\n'> <'\t\t \t{\n'> <'\t\t\t\tif ( FIELD == 0 ) BOOTPATH=$1\n'> <'\t\t\t\tif ( FIELD == 1 ) BOOTFILE=$1\n'> <'\t\t\t\tFIELD++\n'> <'\t\t\t}\n'> <'\t\t}\n'> <'\t\t{\n'> <'\t\t\tif ( PART == 1 )\n'> <'\t\t\t{\n'> <'\t\t\t\tHOST=$1\n'> <'\t\t\t\tHA=$3\n'> <'\t\t\t\tIP=$4\n'> <'\t\t\t\tBF=$5\n'> < '\t\t\t\tprintf "%s:\\\\\\n\\t:tc=.default:\\\\\\n\\t:ha=0x%s:\\\\\\n\\t:ip=%s:\\\\\\n\\t:bf=%s:\\n", HOST, HA, IP, BF\n' > <'\t\t\t}\n'> <'\t\t}'> ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName '$NEWTAB')} ) ] do_fork: T ) ] negated: F ) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<0>}) ] )