(command.CommandList children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:sysdir) op: assign_op.Equal rhs: {<'/sys/class/net'>} spids: [53] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:netvsc_cls) op: assign_op.Equal rhs: {<Id.Lit_LBrace '{'> <f8615163-df3e-46c5-913f-f2d2f965ed0e> <Id.Lit_RBrace '}'>} spids: [56] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:bondcnt) op: assign_op.Equal rhs: {<0>} spids: [61] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-f>} {<'/etc/redhat-release'>} {<Id.Lit_RBracket ']'>}) terminator: <Id.Op_Semi _> ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:cfgdir) op: assign_op.Equal rhs: {<'/etc/sysconfig/network-scripts'>} spids: [82] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:distro) op: assign_op.Equal rhs: {<redhat>} spids: [86] ) ] ) ] spids: [68 79] ) (if_arm cond: [(C {<grep>} {<-q>} {(SQ <Ubuntu>)} {<'/etc/issue'>})] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:cfgdir) op: assign_op.Equal rhs: {<'/etc/network'>} spids: [104] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:distro) op: assign_op.Equal rhs: {<ubuntu>} spids: [108] ) ] ) ] spids: [89 101] ) (if_arm cond: [(C {<grep>} {<-q>} {(SQ <SUSE>)} {<'/etc/issue'>})] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:cfgdir) op: assign_op.Equal rhs: {<'/etc/sysconfig/network'>} spids: [126] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:distro) op: assign_op.Equal rhs: {<suse>} spids: [130] ) ] ) ] spids: [111 123] ) ] else_action: [ (C {<echo>} {(DQ <'Unsupported Distro'>)}) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] ) (C {<echo>} {<Detected>} {<Distro> <Id.Lit_Colon ':'>} {($ Id.VSub_DollarName '$distro') <Id.Lit_Comma ','>} {<or>} {<compatible>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:list_eth) op: assign_op.Equal rhs: { (sh_array_literal left: <Id.Op_LParen _> words: [ { (command_sub left_token: <Id.Left_Backtick '`'> child: (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<cd>} {($ Id.VSub_DollarName '$sysdir')}) (command.Pipeline children: [ (C {<ls>} {<-d>} {<Id.Lit_Star '*'> <'/'>}) (C {<cut>} {<'-d/'>} {<-f1>}) (C {<grep>} {<-v>} {<bond>}) ] negated: F ) ] ) ) } ] ) } spids: [168] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:eth_cnt) op: assign_op.Equal rhs: { (braced_var_sub token: <Id.VSub_Name list_eth> prefix_op: (Id.VSub_Pound) bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) ) } spids: [204] ) ] ) (C {<echo>} {<List>} {<of>} {<net>} {<devices> <Id.Lit_Colon ':'>}) (command.ForExpr init: (arith_expr.BinaryAssign op_id: Id.Arith_Equal left: <Id.Lit_ArithVarLike i> right: {<Id.Lit_Digits 0>} ) cond: (arith_expr.Binary op_id: Id.Arith_Less left: <Id.Lit_ArithVarLike i> right: {($ Id.VSub_DollarName '$eth_cnt')} ) update: (arith_expr.UnaryAssign op_id:Id.Node_PostDPlus child:<Id.Lit_ArithVarLike i>) body: (command.DoGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.IndexedName name:list_mac index:{($ Id.VSub_DollarName '$i')}) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<cat>} {($ Id.VSub_DollarName '$sysdir') <'/'> (braced_var_sub token: <Id.VSub_Name list_eth> bracket_op: (bracket_op.ArrayIndex expr:{($ Id.VSub_DollarName '$i')}) ) <'/address'> } ) ) } spids: [254] ) ] ) (C {<echo>} { (braced_var_sub token: <Id.VSub_Name list_eth> bracket_op: (bracket_op.ArrayIndex expr:{($ Id.VSub_DollarName '$i')}) ) <Id.Lit_Comma ','> } { (braced_var_sub token: <Id.VSub_Name list_mac> bracket_op: (bracket_op.ArrayIndex expr:{($ Id.VSub_DollarName '$i')}) ) } ) ] ) ) (command.ForExpr init: (arith_expr.BinaryAssign op_id: Id.Arith_Equal left: <Id.Lit_ArithVarLike i> right: {<Id.Lit_Digits 0>} ) cond: (arith_expr.Binary op_id: Id.Arith_Less left: <Id.Lit_ArithVarLike i> right: (arith_expr.Binary op_id: Id.Arith_Minus left: {($ Id.VSub_DollarName '$eth_cnt')} right: {<Id.Lit_Digits 1>} ) ) update: (arith_expr.UnaryAssign op_id:Id.Node_PostDPlus child:<Id.Lit_ArithVarLike i>) body: (command.DoGroup children: [ (command.ForExpr init: (arith_expr.BinaryAssign op_id: Id.Arith_Equal left: <Id.Lit_ArithVarLike j> right: (arith_expr.Binary op_id: Id.Arith_Plus left: <Id.Lit_ArithVarLike i> right: {<Id.Lit_Digits 1>} ) ) cond: (arith_expr.Binary op_id: Id.Arith_Less left: <Id.Lit_ArithVarLike j> right: {($ Id.VSub_DollarName '$eth_cnt')} ) update: (arith_expr.UnaryAssign op_id:Id.Node_PostDPlus child:<Id.Lit_ArithVarLike j>) body: (command.DoGroup children: [ (command.If arms: [ (if_arm cond: [ (C {<Id.Lit_LBracket '['>} { (DQ (braced_var_sub token: <Id.VSub_Name list_mac> bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName '$i')} ) ) ) } {<Id.Lit_Equals '='>} { (DQ (braced_var_sub token: <Id.VSub_Name list_mac> bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName '$j')} ) ) ) } {<Id.Lit_RBracket ']'>} ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.IndexedName name: list_match index: {($ Id.VSub_DollarName '$i')} ) op: assign_op.Equal rhs: { (braced_var_sub token: <Id.VSub_Name list_eth> bracket_op: (bracket_op.ArrayIndex expr: {($ Id.VSub_DollarName '$j')} ) ) } spids: [384] ) ] ) (command.ControlFlow token: <Id.ControlFlow_Break break> ) ] spids: [354 381] ) ] ) ] ) ) ] ) ) (command.ShFunction name: create_eth_cfg_redhat body: (BraceGroup children: [ (C {<local>} {<Id.Lit_VarLike 'fn='> ($ Id.VSub_DollarName '$cfgdir') <'/ifcfg-'> ($ Id.VSub_Number '$1') } ) (C {<rm>} {<-f>} {($ Id.VSub_DollarName '$fn')}) (command.Simple words: [{<echo>} {<Id.Lit_VarLike 'DEVICE='> ($ Id.VSub_Number '$1')}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName '$fn')} ) ] do_fork: T ) (command.Simple words: [{<echo>} {<Id.Lit_VarLike 'TYPE='> <Ethernet>}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName '$fn')} ) ] do_fork: T ) (command.Simple words: [{<echo>} {<Id.Lit_VarLike 'BOOTPROTO='> <none>}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName '$fn')} ) ] do_fork: T ) (command.Simple words: [{<echo>} {<Id.Lit_VarLike 'ONBOOT='> <yes>}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName '$fn')} ) ] do_fork: T ) (command.Simple words: [{<echo>} {<Id.Lit_VarLike 'NM_CONTROLLED='> <no>}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName '$fn')} ) ] do_fork: T ) (command.Simple words: [{<echo>} {<Id.Lit_VarLike 'PEERDNS='> <yes>}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName '$fn')} ) ] do_fork: T ) (command.Simple words: [{<echo>} {<Id.Lit_VarLike 'IPV6INIT='> <yes>}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName '$fn')} ) ] do_fork: T ) (command.Simple words: [{<echo>} {<Id.Lit_VarLike 'MASTER='> ($ Id.VSub_Number '$2')}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName '$fn')} ) ] do_fork: T ) (command.Simple words: [{<echo>} {<Id.Lit_VarLike 'SLAVE='> <yes>}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName '$fn')} ) ] do_fork: T ) ] ) ) (command.ShFunction name: create_eth_cfg_pri_redhat body: (BraceGroup children: [(C {<create_eth_cfg_redhat>} {($ Id.VSub_Number '$1')} {($ Id.VSub_Number '$2')})] ) ) (command.ShFunction name: create_bond_cfg_redhat body: (BraceGroup children: [ (C {<local>} {<Id.Lit_VarLike 'fn='> ($ Id.VSub_DollarName '$cfgdir') <'/ifcfg-'> ($ Id.VSub_Number '$1') } ) (C {<rm>} {<-f>} {($ Id.VSub_DollarName '$fn')}) (command.Simple words: [{<echo>} {<Id.Lit_VarLike 'DEVICE='> ($ Id.VSub_Number '$1')}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName '$fn')} ) ] do_fork: T ) (command.Simple words: [{<echo>} {<Id.Lit_VarLike 'TYPE='> <Bond>}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName '$fn')} ) ] do_fork: T ) (command.Simple words: [{<echo>} {<Id.Lit_VarLike 'BOOTPROTO='> <dhcp>}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName '$fn')} ) ] do_fork: T ) (command.Simple words: [{<echo>} {<Id.Lit_VarLike 'ONBOOT='> <yes>}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName '$fn')} ) ] do_fork: T ) (command.Simple words: [{<echo>} {<Id.Lit_VarLike 'NM_CONTROLLED='> <no>}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName '$fn')} ) ] do_fork: T ) (command.Simple words: [{<echo>} {<Id.Lit_VarLike 'PEERDNS='> <yes>}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName '$fn')} ) ] do_fork: T ) (command.Simple words: [{<echo>} {<Id.Lit_VarLike 'IPV6INIT='> <yes>}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName '$fn')} ) ] do_fork: T ) (command.Simple words: [{<echo>} {<Id.Lit_VarLike 'BONDING_MASTER='> <yes>}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName '$fn')} ) ] do_fork: T ) (command.Simple words: [ {<echo>} {<Id.Lit_VarLike 'BONDING_OPTS='> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <Id.Lit_VarLike 'mode='> <active-backup> } {<Id.Lit_VarLike 'miimon='> <100>} {<Id.Lit_VarLike 'primary='> ($ Id.VSub_Number '$2') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName '$fn')} ) ] do_fork: T ) ] ) ) (command.ShFunction name: create_eth_cfg_ubuntu body: (BraceGroup children: [ (C {<local>} {<Id.Lit_VarLike 'fn='> ($ Id.VSub_DollarName '$cfgdir') <'/interfaces'>}) (command.Simple words: [ {<echo>} {(single_quoted left:<Id.Left_SingleQuoteC '$\''> tokens:[<Id.Char_OneChar '\\n'>]) <auto> } {($ Id.VSub_Number '$1')} ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName '$fn')} ) ] do_fork: T ) (command.Simple words: [{<echo>} {<iface>} {($ Id.VSub_Number '$1')} {<inet>} {<manual>}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName '$fn')} ) ] do_fork: T ) (command.Simple words: [{<echo>} {<bond-master>} {($ Id.VSub_Number '$2')}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName '$fn')} ) ] do_fork: T ) ] ) ) (command.ShFunction name: create_eth_cfg_pri_ubuntu body: (BraceGroup children: [ (C {<local>} {<Id.Lit_VarLike 'fn='> ($ Id.VSub_DollarName '$cfgdir') <'/interfaces'>}) (C {<create_eth_cfg_ubuntu>} {($ Id.VSub_Number '$1')} {($ Id.VSub_Number '$2')}) (command.Simple words: [{<echo>} {<bond-primary>} {($ Id.VSub_Number '$1')}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName '$fn')} ) ] do_fork: T ) ] ) ) (command.ShFunction name: create_bond_cfg_ubuntu body: (BraceGroup children: [ (C {<local>} {<Id.Lit_VarLike 'fn='> ($ Id.VSub_DollarName '$cfgdir') <'/interfaces'>}) (command.Simple words: [ {<echo>} {(single_quoted left:<Id.Left_SingleQuoteC '$\''> tokens:[<Id.Char_OneChar '\\n'>]) <auto> } {($ Id.VSub_Number '$1')} ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName '$fn')} ) ] do_fork: T ) (command.Simple words: [{<echo>} {<iface>} {($ Id.VSub_Number '$1')} {<inet>} {<dhcp>}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName '$fn')} ) ] do_fork: T ) (command.Simple words: [{<echo>} {<bond-mode>} {<active-backup>}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName '$fn')} ) ] do_fork: T ) (command.Simple words: [{<echo>} {<bond-miimon>} {<100>}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName '$fn')} ) ] do_fork: T ) (command.Simple words: [{<echo>} {<bond-slaves>} {<none>}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName '$fn')} ) ] do_fork: T ) ] ) ) (command.ShFunction name: create_eth_cfg_suse body: (BraceGroup children: [ (C {<local>} {<Id.Lit_VarLike 'fn='> ($ Id.VSub_DollarName '$cfgdir') <'/ifcfg-'> ($ Id.VSub_Number '$1') } ) (C {<rm>} {<-f>} {($ Id.VSub_DollarName '$fn')}) (command.Simple words: [{<echo>} {<Id.Lit_VarLike 'BOOTPROTO='> <none>}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName '$fn')} ) ] do_fork: T ) (command.Simple words: [{<echo>} {<Id.Lit_VarLike 'STARTMODE='> <auto>}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName '$fn')} ) ] do_fork: T ) ] ) ) (command.ShFunction name: create_eth_cfg_pri_suse body: (BraceGroup children:[(C {<create_eth_cfg_suse>} {($ Id.VSub_Number '$1')})]) ) (command.ShFunction name: create_bond_cfg_suse body: (BraceGroup children: [ (C {<local>} {<Id.Lit_VarLike 'fn='> ($ Id.VSub_DollarName '$cfgdir') <'/ifcfg-'> ($ Id.VSub_Number '$1') } ) (C {<rm>} {<-f>} {($ Id.VSub_DollarName '$fn')}) (command.Simple words: [{<echo>} {<Id.Lit_VarLike 'BOOTPROTO='> <dhcp>}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName '$fn')} ) ] do_fork: T ) (command.Simple words: [{<echo>} {<Id.Lit_VarLike 'STARTMODE='> <auto>}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName '$fn')} ) ] do_fork: T ) (command.Simple words: [{<echo>} {<Id.Lit_VarLike 'BONDING_MASTER='> <yes>}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName '$fn')} ) ] do_fork: T ) (command.Simple words: [{<echo>} {<Id.Lit_VarLike 'BONDING_SLAVE_0='> ($ Id.VSub_Number '$2')}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName '$fn')} ) ] do_fork: T ) (command.Simple words: [{<echo>} {<Id.Lit_VarLike 'BONDING_SLAVE_1='> ($ Id.VSub_Number '$3')}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName '$fn')} ) ] do_fork: T ) (command.Simple words: [ {<echo>} {<Id.Lit_VarLike 'BONDING_MODULE_OPTS='> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\''>) <Id.Lit_VarLike 'mode='> <active-backup> } {<Id.Lit_VarLike 'miimon='> <100>} {<Id.Lit_VarLike 'primary='> ($ Id.VSub_Number '$2') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\''>) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName '$fn')} ) ] do_fork: T ) ] ) ) (command.ShFunction name: create_bond body: (BraceGroup children: [ (C {<local>} {<Id.Lit_VarLike 'bondname='> <bond> ($ Id.VSub_DollarName '$bondcnt')}) (C {<local>} {<primary>}) (C {<local>} {<secondary>}) (C {<local>} {<Id.Lit_VarLike 'class_id1='> (command_sub left_token: <Id.Left_Backtick '`'> child: (command.Simple words: [ {<cat>} {($ Id.VSub_DollarName '$sysdir') <'/'> ($ Id.VSub_Number '$1') <'/device/class_id'> } ] redirects: [ (redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {<'/dev/null'>} ) ] do_fork: T ) ) } ) (C {<local>} {<Id.Lit_VarLike 'class_id2='> (command_sub left_token: <Id.Left_Backtick '`'> child: (command.Simple words: [ {<cat>} {($ Id.VSub_DollarName '$sysdir') <'/'> ($ Id.VSub_Number '$2') <'/device/class_id'> } ] redirects: [ (redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {<'/dev/null'>} ) ] do_fork: T ) ) } ) (command.If arms: [ (if_arm cond: [ (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$class_id1'))} {<Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$netvsc_cls'))} {<Id.Lit_RBracket ']'>} ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:primary) op: assign_op.Equal rhs: {($ Id.VSub_Number '$2')} spids: [1034] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:secondary) op: assign_op.Equal rhs: {($ Id.VSub_Number '$1')} spids: [1038] ) ] ) ] spids: [1014 1031] ) (if_arm cond: [ (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$class_id2'))} {<Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$netvsc_cls'))} {<Id.Lit_RBracket ']'>} ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:primary) op: assign_op.Equal rhs: {($ Id.VSub_Number '$1')} spids: [1062] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:secondary) op: assign_op.Equal rhs: {($ Id.VSub_Number '$2')} spids: [1066] ) ] ) ] spids: [1042 1059] ) ] else_action: [(command.ControlFlow token:<Id.ControlFlow_Return return> arg_word:{<0>})] ) (C {<echo>} { (single_quoted left: <Id.Left_SingleQuoteC '$\''> tokens: [<Id.Char_OneChar '\\n'> <Id.Char_Literals 'Bond name:'>] ) } {($ Id.VSub_DollarName '$bondname')} ) (C {<echo>} {<configuring>} {($ Id.VSub_DollarName '$primary')}) (C {<create_eth_cfg_pri_> ($ Id.VSub_DollarName '$distro')} {($ Id.VSub_DollarName '$primary')} {($ Id.VSub_DollarName '$bondname')} ) (C {<echo>} {<configuring>} {($ Id.VSub_DollarName '$secondary')}) (C {<create_eth_cfg_> ($ Id.VSub_DollarName '$distro')} {($ Id.VSub_DollarName '$secondary')} {($ Id.VSub_DollarName '$bondname')} ) (C {<echo>} {<creating> <Id.Lit_Colon ':'>} {($ Id.VSub_DollarName '$bondname')} {<with>} {<primary>} {<slave> <Id.Lit_Colon ':'>} {($ Id.VSub_DollarName '$primary')} ) (C {<create_bond_cfg_> ($ Id.VSub_DollarName '$distro')} {($ Id.VSub_DollarName '$bondname')} {($ Id.VSub_DollarName '$primary')} {($ Id.VSub_DollarName '$secondary')} ) (C {<let>} {<Id.Lit_VarLike 'bondcnt='> <bondcnt> <Id.Lit_Other '+'> <1>}) ] ) ) (command.ForExpr init: (arith_expr.BinaryAssign op_id: Id.Arith_Equal left: <Id.Lit_ArithVarLike i> right: {<Id.Lit_Digits 0>} ) cond: (arith_expr.Binary op_id: Id.Arith_Less left: <Id.Lit_ArithVarLike i> right: (arith_expr.Binary op_id: Id.Arith_Minus left: {($ Id.VSub_DollarName '$eth_cnt')} right: {<Id.Lit_Digits 1>} ) ) update: (arith_expr.UnaryAssign op_id:Id.Node_PostDPlus child:<Id.Lit_ArithVarLike i>) body: (command.DoGroup children: [ (command.If arms: [ (if_arm cond: [ (C {<Id.Lit_LBracket '['>} {<-n>} { (DQ (braced_var_sub token: <Id.VSub_Name list_match> bracket_op: (bracket_op.ArrayIndex expr:{($ Id.VSub_DollarName '$i')}) ) ) } {<Id.Lit_RBracket ']'>} ) ] action: [ (C {<create_bond>} { (braced_var_sub token: <Id.VSub_Name list_eth> bracket_op: (bracket_op.ArrayIndex expr:{($ Id.VSub_DollarName '$i')}) ) } { (braced_var_sub token: <Id.VSub_Name list_match> bracket_op: (bracket_op.ArrayIndex expr:{($ Id.VSub_DollarName '$i')}) ) } ) ] spids: [1190 1208] ) ] ) ] ) ) ] )