http://groovy-lang.org/syntax.html#all-strings
On 30.05.2018 21:38, Chris Fouts wrote:
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
<[email protected] <mailto:[email protected]>> 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 <tel:%28858%29%20740-6523>
*From: *Chris Fouts <[email protected]
<mailto:[email protected]>>
*Reply-To: *"[email protected]
<mailto:[email protected]>" <[email protected]
<mailto:[email protected]>>
*Date: *Wednesday, May 30, 2018 at 11:55 AM
*To: *"[email protected] <mailto:[email protected]>"
<[email protected] <mailto:[email protected]>>
*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
<[email protected] <mailto:[email protected]>> 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 <tel:%28858%29%20740-6523>
*From: *Chris Fouts <[email protected]
<mailto:[email protected]>>
*Reply-To: *"[email protected]
<mailto:[email protected]>" <[email protected]
<mailto:[email protected]>>
*Date: *Wednesday, May 30, 2018 at 10:58 AM
*To: *"[email protected]
<mailto:[email protected]>" <[email protected]
<mailto:[email protected]>>
*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