Splunk Search

Eval macro with string argument

MatMeredith
Path Finder

I'm trying to define a Splunk eval based macro that takes a string as a parameter (where the string must be able to contain spaces), tests the value of the string, and then returns a value based on the outcome of that test. But I can't get it to work. Taking as a simplified example...

Macro definition:

if ($arg1$=="Test String", "true", "false")

Macro invocation:

`name("Test String")`

The macro always evaluates to false. I've tried every combination of single and double quotes that I can think of in both the macro definition and invocation, but I can't seem to get this to work. Am I missing something?

Thanks!

Tags (2)
0 Karma
1 Solution

martin_mueller
SplunkTrust
SplunkTrust

Define your macro as follows:

if("$arg1$"=="test","true","false") 

The quotes around $arg1$ are necessary. Then the value placed into the macro content by string substitution again gets treated as a string rather than as a reference to a field.

View solution in original post

martin_mueller
SplunkTrust
SplunkTrust

Define your macro as follows:

if("$arg1$"=="test","true","false") 

The quotes around $arg1$ are necessary. Then the value placed into the macro content by string substitution again gets treated as a string rather than as a reference to a field.

MatMeredith
Path Finder

Perfect -- thank you Martin.

0 Karma

linu1988
Champion

Hello Martin,
both the scenario works for me, just had to tweak the passing of arguments.

0 Karma

linu1988
Champion

Hello Mat,
please write the macro definiton as:

" if ($arg1$=="Test String", "true", "false")

and call the eval statement as "eval a=`macro_name((Backslash)\"Test String(Backslash)\")" as double quote will give you error

0 Karma
Get Updates on the Splunk Community!

Unlock Database Monitoring with Splunk Observability Cloud

  In today’s fast-paced digital landscape, even minor database slowdowns can disrupt user experiences and ...

Purpose in Action: How Splunk Is Helping Power an Inclusive Future for All

At Cisco, purpose isn’t a tagline—it’s a commitment. Cisco’s FY25 Purpose Report outlines how the company is ...

[Upcoming Webinar] Demo Day: Transforming IT Operations with Splunk

Join us for a live Demo Day at the Cisco Store on January 21st 10:00am - 11:00am PST In the fast-paced world ...