[
https://issues.apache.org/jira/browse/EXEC-83?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13907470#comment-13907470
]
Kevin Brown commented on EXEC-83:
---------------------------------
So it looks like quote handling is messing me up. And I might have quotes in
arg2. Turning off quote handling gives me what I expect in the log:
The number of arguments is: 3
The length of argument '100' is: 3
The length of argument 'kevin was here' is: 14
The length of argument 'three' is: 5
<sigh>
{code}
@Test
public void testExecutor() throws IOException {
String script="/Users/kevin/foo.sh";
String arg1="100";
String arg2="kevin was here";
String arg3="three";
CommandLine commandLine = new CommandLine(script);
commandLine.addArgument(arg1, false);
commandLine.addArgument(arg2, false);
commandLine.addArgument(arg3, false);
DefaultExecutor executor = new DefaultExecutor();
executor.setExitValues(null); //check for exit values ourselves
System.out.println("cmdLine="+ commandLine.toString());
int exitValue = executor.execute(commandLine);
System.out.println("exitValue="+ exitValue);
}
{code}
> Arguments with spaces lead to quotes in arguments in bash
> ---------------------------------------------------------
>
> Key: EXEC-83
> URL: https://issues.apache.org/jira/browse/EXEC-83
> Project: Commons Exec
> Issue Type: Bug
> Affects Versions: 1.2
> Environment: Java 7 & OSX
> Reporter: Kevin Brown
> Priority: Minor
>
> If I run my script directly from a bash prompt I see a different behavior
> than if I launch with commons-exec. This may be the nature of the beast
> (java Runtime-exec interacting with bash), but leads me to have to rewrite
> scripts to remove extraneous quotes.
> Here is my script:
> $ cat ./foo.sh
> #!/bin/bash
> echo "$@"
> case I: commons-exec with no spaces ==> arguments do NOT have quotes when in
> bash script
> cmdLine=[/opt/bmam/bin/avidcommand/write_xmp_remote.sh, 70059021,
> RAW-one_two_three, http://foo.com]
> output (of $@):
> 70059021 RAW-one_two_three http://foo.com
> case II: commons-exec with spaces ==> arguments have quotes when in bash
> script
> cmdLine=[/opt/bin/foo.sh, 70058269, "AIR-one two three", http://foo.com]
> output (of $@):
> 70058269 "AIR-one two three" http://foo.com
> case III: execute directly from bash ==> arguments do NOT have quotes when in
> bash script
> $./foo.sh 70058891 "one two three" http://foo.com
> output (of $@):
> 70058891 one two three http://foo.com
--
This message was sent by Atlassian JIRA
(v6.1.5#6160)