Word Splitting: Difference between revisions

From EggeWiki
m (New page: I was about ready to pull my hair out today when I couldn't figure out why my startup script wasn't letting me pass options to Java in cygwin. Here's what I was trying to do: <geshi lang...)
 
mNo edit summary
 
Line 11: Line 11:
# ...
# ...


$JAVA_CMD" ${JAVA_OPTS} -Dbash=fun com.MyClass
"$JAVA_CMD" ${JAVA_OPTS} -Dbash=fun com.MyClass
</geshi>
</geshi>


Line 27: Line 27:
export IFS
export IFS
</geshi>
</geshi>
This apparently was someone else's workaround, so they didn't have to quote <code>"$JAVA_CMD"</code> and any options with spaces in them.


[[Category:Cygwin]]
[[Category:Cygwin]]
[[Category:Bash]]
[[Category:Bash]]

Latest revision as of 03:56, 10 October 2007

I was about ready to pull my hair out today when I couldn't figure out why my startup script wasn't letting me pass options to Java in cygwin.

Here's what I was trying to do:

<geshi lang="bash"> JAVA_CMD="$JAVA_HOME/bin/java" export JAVA_HOME JAVA_OPTS="-ea -server" export JAVA_OPTS

  1. ...

"$JAVA_CMD" ${JAVA_OPTS} -Dbash=fun com.MyClass </geshi>

Whenever I would start my script, I would get this error: <geshi lang="bash"> Unrecognized option: -ea -server Could not create the Java virtual machine. </geshi>

If I changed JAVA_OPTS to only "-ea" or "-server" it worked fine. I tried every combination of quoting my command, and I could not get it to work. I thought I was going crazy, because I've used this pattern in a dozen or so scripts, and the default JBoss script uses the same. Then, I found the section of the Bash manual on word splitting. I did a quick grep, and found sure enough, someone thought to change this inside the script.

<geshi>

  1. Unset Intercommand separator

IFS= export IFS </geshi>

This apparently was someone else's workaround, so they didn't have to quote "$JAVA_CMD" and any options with spaces in them.