You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@groovy.apache.org by "Keegan Witt (JIRA)" <ji...@apache.org> on 2015/08/20 20:28:46 UTC
[jira] [Resolved] (GROOVY-7545) Incorrect handling of quotes in
executed strings
[ https://issues.apache.org/jira/browse/GROOVY-7545?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Keegan Witt resolved GROOVY-7545.
---------------------------------
Resolution: Won't Fix
This isn't a Groovy bug. Compile & run this and you'll observe the same behavior
{code:java}
public class Main {
public static void main(String[] args) {
try {
ProcessBuilder processBuilder = new ProcessBuilder("sh -c 'echo test'");
processBuilder.redirectOutput(ProcessBuilder.Redirect.INHERIT);
processBuilder.redirectError(ProcessBuilder.Redirect.INHERIT);
Process process = processBuilder.start();
} catch (Exception e) {
throw new RuntimeException(e);
}
}
}
{code}
There's several [discussions|https://www.google.com/search?q="Runtime.getRuntime().exec"+quote] about this. [This one|http://stackoverflow.com/questions/161859/using-quotes-within-getruntime-exec] goes into some detail.
The only thing Groovy could try to do is tokenize out your string parts for you. But I don't see how you could intelligently make that determination programmatically.
> Incorrect handling of quotes in executed strings
> ------------------------------------------------
>
> Key: GROOVY-7545
> URL: https://issues.apache.org/jira/browse/GROOVY-7545
> Project: Groovy
> Issue Type: Bug
> Affects Versions: 2.4.0
> Reporter: Pavel
>
> {code}
> cat execute.bug.groovy
> #!/bin/env groovy
> String cmd = "sh -c 'echo test' "
> println "cmd: $cmd"
> def proc = cmd.execute()
> proc.waitForProcessOutput(System.out, System.err)
> {code}
> {code}
> $ LANG=en_US.utf8 ./execute.bug.groovy
> cmd: sh -c 'echo test'
> test': -c: line 0: unexpected EOF while looking for matching `''
> test': -c: line 1: syntax error: unexpected end of file
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)