Thanks. Here's the complete code snippet #!/usr/bin/env groovy
String cmd = $/ IFS=" " read -ra LINE <<< `ls -al | grep Music` echo ${LINE[4]} /$ StringBuilder outstr = new StringBuilder() StringBuilder errstr = new StringBuilder() Process proc = cmd.execute() proc.waitForProcessOutput(outstr, errstr) println $output When I run it, I get Caught: groovy.lang.MissingPropertyException: No such property: LINE for class: file groovy.lang.MissingPropertyException: No such property: LINE for class: file at file.run(file.groovy:5) On Wed, May 30, 2018 at 2:59 PM Nelson, Erick <erick.nel...@hdsupply.com> wrote: > I mistyped > > It is … > > > > $/ > > /$ > > > > Similar to > > ''' > > ''' > > > > They are known as “dollar slashy strings” > > > > Erick Nelson > > Senior Developer – IT > > HD Supply Facilities Maintenance > > (858) 740-6523 > > > > > > *From: *Chris Fouts <chrisfo...@ziftsolutions.com> > *Reply-To: *"users@groovy.apache.org" <users@groovy.apache.org> > *Date: *Wednesday, May 30, 2018 at 11:55 AM > *To: *"users@groovy.apache.org" <users@groovy.apache.org> > *Subject: *Re: Running a shell script with return value? > > > > Thanks. Do the /$ designate a begin/end fo the commands I want to execute? > So using my example, I do > > > > String cmd = /$ > > IFS=" " read -ra LINE <<< `ls -al | grep some_file` > > echo ${LINE[4]} > > /$ > > > > On Wed, May 30, 2018 at 2:20 PM Nelson, Erick <erick.nel...@hdsupply.com> > wrote: > > > > String cmd = /$ > > What you want to shell out and execute here > > Remember, java shells out as sh, not bash or your shell of choice > > /$ > > // output and error can be any class that implements Appendable > > StringBuilder output = new StringBuilder() > > StringBuilder error = new StringBuilder () > > Process proc = cmd.execute() > > proc.waitForProcessOutput(output, error) > > println proc.exitValue() > > > > > > Erick Nelson > > Senior Developer – IT > > HD Supply Facilities Maintenance > > (858) 740-6523 > > > > > > *From: *Chris Fouts <chrisfo...@ziftsolutions.com> > *Reply-To: *"users@groovy.apache.org" <users@groovy.apache.org> > *Date: *Wednesday, May 30, 2018 at 10:58 AM > *To: *"users@groovy.apache.org" <users@groovy.apache.org> > *Subject: *Running a shell script with return value? > > > > Inside groovy, I want to write a shell script that parses the output of > some shell command and get some string value back. How can I get the value > of the shell command? > > > > For example say I want to get the file size of some_file, I'll do > > > > x = sh returnStatus: true, script: ''' > > IFS=" " read -ra LINE <<< `ls -al | grep some_file` > > echo ${LINE[4]} > > ''' > > > > How can I store the value of ${LINE[4]} in a groovy variable to use later? > > > > Thanks, > > Chris > >