(command.CommandList children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:now) op: assign_op.Equal rhs: { (DQ (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:13) command_list: (command.CommandList children: [ (C {(date)} {(Id.Lit_Other '+') (Id.Lit_Other '%') (y) (Id.Lit_Other '%') (m) (Id.Lit_Other '%') (d) } ) ] ) ) ) } spids: [11] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:start) op: assign_op.Equal rhs: {(DQ ('http://www.straightdope.com/ '))} spids: [26] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:to) op: assign_op.Equal rhs: {(DQ ('testing@yourdomain.com'))} spids: [31] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:URL) op: assign_op.Equal rhs: { (DQ (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:46) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(curl)} {(-s)} {(DQ ($ Id.VSub_DollarName '$start'))}) (C {(grep)} {(-A1)} {(SQ (Token id:Id.Lit_Chars val:teaser span_id:64))}) (C {(sed)} {(-n)} {(SQ (Token id:Id.Lit_Chars val:2p span_id:74))}) (C {(cut)} {(-d) (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:84) ) } {(-f2)} ) (C {(cut)} {(-d) (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\"' span_id:93) ) } {(-f1)} ) ] negated: F ) ] ) ) ) } spids: [44] ) ] ) (command.Pipeline children: [ (command.Subshell command_list: (command.CommandList children: [ (command.Simple words: [{(cat)}] redirects: [ (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:108) fd: -1 here_begin: {(EOF)} here_end_span_id: 128 stdin_parts: [ ('Subject: The Straight Dope for ') (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:113) command_list: (command.CommandList children: [(C {(date)} {(DQ ('+%A, %d %B, %Y'))})] ) ) ('\n') ('From: Cecil Adams <dont@reply.com>\n') ('Content-type: text/html\n') ('To: ') ($ Id.VSub_DollarName '$to') ('\n') ('\n') ] ) ] ) (C {(curl)} {(DQ ($ Id.VSub_DollarName '$URL'))}) ] ) ) (C {(/usr/sbin/sendmail)} {(-t)}) ] negated: F ) (command.ControlFlow token:(Token id:Id.ControlFlow_Exit val:exit span_id:145) arg_word:{(0)}) ] )