(command.CommandList children: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:tmp spids:[4]) op: Equal rhs: {($ VSub_Number '$1')} spids: [4] ) ] spids: [4] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:file spids:[7]) op: Equal rhs: { (word_part.BracedVarSub token: <VSub_Name tmp> suffix_op: (suffix_op.StringUnary op_id:VTest_ColonEquals arg_word:{(VERSION)}) spids: [8 12] ) } spids: [7] ) ] spids: [7] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:gitver spids:[14]) op: Equal rhs: { (word_part.CommandSubPart command_list: (command.CommandList children: [ (command.Pipeline children: [ (command.SimpleCommand words: [{(git)} {(describe)}] redirects: [(redir.Redir op:<Redir_Great '2>'> fd:2 arg_word:{(/dev/null)})] ) (C {(tr)} {(-)} {(.)}) ] negated: F ) ] ) left_token: <Left_CommandSub '$('> spids: [15 30] ) } spids: [14] ) ] spids: [14] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:filever spids:[32]) op: Equal rhs: { (word_part.CommandSubPart command_list: (command.CommandList children: [ (command.SimpleCommand words: [{(cat)} {(${ VSub_Name file)}] redirects: [(redir.Redir op:<Redir_Great '2>'> fd:2 arg_word:{(/dev/null)})] ) ] ) left_token: <Left_CommandSub '$('> spids: [33 42] ) } spids: [32] ) ] spids: [32] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:version spids:[45]) op: Equal rhs: {(${ VSub_Name gitver)} spids: [45] ) ] spids: [45] ) (C {(Lit_Other ':')} { (word_part.BracedVarSub token: <VSub_Name version> suffix_op: (suffix_op.StringUnary op_id: VTest_ColonEquals arg_word: {($ VSub_DollarName '$filever')} ) spids: [52 56] ) } ) (C {(echo)} {(DQ ($ VSub_DollarName '$version'))}) ] )