01-29-2008
odd behaviour with quoted input strings
I'm working with a java-based monitoring tool (Solaris/x86) which can be configured to call a shell script when a particular event occurs. The java app sends a set of quoted strings as input to the shell script.
The problem I'm running into is that the shell script, when called by the java app, appears to be treating the quote marks as if they are escaped.
Here's a simplified example of what I'm seeing.
$ cat myscript.sh
#!/bin/sh
p1=$1
p2=$2
p3=$3
p4=$4
echo p1 = .$p1.
echo p2 = .$p2.
echo p3 = .$p3.
echo p4 = .$p4.
# end of myscript.sh
$
If I manually run myscript.sh with a couple quoted input strings I get the desired behaviour, namely p1 and p2 are set to the value of the 2 input strings, while p3 and p4 are undefined/empty:
$ myscript.sh 'a b' 'c d'
p1 = .a b.
p2 = .c d.
p3 = ..
p4 = ..
When the java app calls myscript.sh with the same quoted string arguments I do not get the desired results:
p1 = .'a.
p2 = .b'.
p3 = .'c.
p4 = .d'.
Besides the fact that the p[1-4] variables have the wrong values, there's the oddity that the quotes are showing up as part of the values stored in the p[1-4] variables.
I've modified myscript.sh to run 'env|sort' and 'stty -a' and then compared the 2 sets of output (my manual run vs java app's run). I've reconfigured my environment to use the same settings as the java app, but so far have not been able to duplicate the results obtained when the java app calls myscript.sh.
I've also made sure that the java app and I are running under the same UNIX login ... still a no go.
The java app does not exhibit this behaviour on other UNIX machines so I'm assuming/hoping this is a 'simple' issue of an environment setting for the java app on this machine, but at the moment I'm drawing a blank.
Any suggestions/ideas?
TIA,
Mark
10 More Discussions You Might Find Interesting
1. Shell Programming and Scripting
Hi All,
I have files:
1. abc.sql
'This is a sample file for testing'
This does not have quotations
this also does not have quotations.
and this 'has quotations'.
here I need to list the hard coded strings 'This is a sample file for testing' and
'has quotations'.
So i have... (13 Replies)
Discussion started by: kprattip
13 Replies
2. Solaris
Hi,
Normally, I setup my volumes under Solaris (doesnt matter, 8 or 10),
as vxassist -g dg01 -U gen make vol01 500m dg0101, then I do a mirror
vxassist -g dg01 mirror vol01 dg0102.
Which is legal and does work, however, when the primary dg01 array (or simply in this case, the volume)... (2 Replies)
Discussion started by: mrmurdock
2 Replies
3. Shell Programming and Scripting
Hello all!
I need to take a series of inputs passed to one shell script and pass them to a second shell script.
For example, the first shell script, script_one.sh, has the following inputs:
./script_one -u username -p password -option1 string1 -option2 -string2 ....Inside of script_one.sh... (4 Replies)
Discussion started by: bashnewbee
4 Replies
4. Shell Programming and Scripting
Hi, could some help me convert CSV file (with double quoted strings) to pipe delimited file:
here you go with the same data:
1,Friends,"$3.99 per 1,000 listings",8158here " 1,000 listings " should be a single field.
Thanks,
Ram (8 Replies)
Discussion started by: Ram.Math
8 Replies
5. Shell Programming and Scripting
Hi,
I have a script output.sh which produces the following output (as an example):
"abc def" "ghi jkl"
This output should be handled from script input.sh as input and the quotes should be treated as variable delimiters but not as regular characters.
input.sh (processing positional... (2 Replies)
Discussion started by: stresing
2 Replies
6. Shell Programming and Scripting
I am trying to extract multiple strings from snmp-mib files like below.
-----
$ cat IF-MIB.mib
<snip>
linkDown NOTIFICATION-TYPE
OBJECTS { ifIndex, ifAdminStatus, ifOperStatus }
STATUS current
DESCRIPTION
"A linkDown trap signifies that the SNMP entity, acting in... (5 Replies)
Discussion started by: genzo
5 Replies
7. Shell Programming and Scripting
I want to create an array which can store the strings from the user input in shell script .
example :-
I want to store the 5 fruits name in a single array which the user provides . (1 Reply)
Discussion started by: Pkast
1 Replies
8. Shell Programming and Scripting
Hi there. I've been forced by circumstance to write an expect script to handle password updates on a number of servers. There's a mix of Solaris 8, 9, 10, RedHat and Ubuntu. There's no chance the client will allow us to hook them up to a directory, so we have to make do.
This script is mostly... (0 Replies)
Discussion started by: whetu
0 Replies
9. Shell Programming and Scripting
Ok, so I'm playing around with delimters and reading files. and I came across this behaviour that I thought was a bit odd, regarding how the set command takes values... If I run this: IFS=$'-' #Assigns the - as the default delimiter for bash set I-love-my-gf-a-lot #uses set to put a bunch of... (1 Reply)
Discussion started by: Lost in Cyberia
1 Replies
10. Programming
Hi Experts,
I am writing a python script to grep string from file and display output in csv file as in attached screenshot
https://drive.google.com/file/d/1gfUUdfmQma33tz65NskThYDhkZUGQO0H/view
Input file(result_EPFT_config_device)
Below is the python script i have prepared as of... (1 Reply)
Discussion started by: as7951
1 Replies
LEARN ABOUT CENTOS
java-wrappers
JAVA-WRAPPERS(7) Java wrappers JAVA-WRAPPERS(7)
NAME
java-wrappers - capacities shared by java wrapper scripts
DESCRIPTION
Most Java programs are not run directly, but through small shell scripts that take care of various things, such as finding a suitable java
environment and looking for libraries.
To ease the task of the maintainers, they rely on a library providing runtime detection, library detection and other features. This manual
page describes the common features of all those scripts, and to which point you can configure them. This is mainly done via environment
variables.
ENVIRONMENT VARIABLES
java-wrappers understands some environment variables:
JAVA_CMD
The java command that will be run. If this variable is set, it disables all lookup for a java runtime.
JAVA_BINDIR
Specifies a directory that will be looked for a java or a jdb executable (depending on the setting of JAVA_DEBUGGER). It has prece-
dence over JAVA_HOME but not over JAVA_CMD.
JAVA_HOME
A path to a java runtime. If this variable is set, all lookup for a java runtime is disabled, except that if no java executable is
found in the path, the command java is used.
JAVA_FLAVOR
A probably more easy-to-use version of the JAVA_HOME variable: instead of specifying the full path of the java runtime, you name it.
List of available flavors can be found in the file /usr/lib/java-wrappers/jvm-list.sh. See examples below.
JAVA_DEBUGGER
If this is set, the wrapper will try to pick up a java debugger rather than a java interpreter. This will fail if the jbd of the
runtime found is a stub.
JAVA_CLASSPATH
Additional classpath, will have priority over the one found by the wrapper.
JAVA_ARGS
Additional arguments to the java command. They will come before all other arguments.
FORCE_CLASSPATH
If this variable is set, it will be the only classpath. You'd better know what you are doing.
DEBUG_WRAPPER
This is probably the most important variable; if it set, the wrapper will print out useful information as it goes by its business,
such as which runtime it did find, and which command is run eventually.
JAVA_JARPATH
The path where the wrappers will go looking for jar archives. If not set, the wrapper will look into the default directory,
/usr/share/java. Warning : the wrapper will not look anywhere else than in JAVA_JARPATH. Setting it incorrectly will most probably
result in early crashes.
EXAMPLES
The examples all rely on rasterizer(1), from the package libbatik-java, but they really apply to all scripts that use java-wrappers.
Print out debugging information:
DEBUG_WRAPPER=1 rasterizer
Limit rasterizer's memory to 80 MB:
JAVA_ARGS=-Xmx80m rasterizer
Force rasterizer to run with kaffe(1):
JAVA_HOME=/usr/lib/kaffe rasterizer
The same, but using JAVA_BINDIR:
JAVA_BINDIR=/usr/lib/kaffe/bin rasterizer
Force rasterizer to run with openjdk:
JAVA_FLAVOR=openjdk rasterizer
Debug rasterizer with Sun's debugger, while printing debugging information from the wrapper:
DEBUG_WRAPPER=1 JAVA_CMD=/usr/lib/jvm/java-6-sun/bin/jdb rasterizer
BUGS
Care has been taken to make the wrappers bug-free. If that was not the case, please file a bug report against the java-wrappers package.
If you wish to submit any problem with a java executable relying on java-wrappers, please also submit the output of the command run with
DEBUG_WRAPPER=1. It will save one mail exchange and therefore potentially reduce the time it takes to fix the bug.
DEVELOPERS
There is currently no documentation about writing a wrapper script save the comments in /usr/lib/java-wrappers/java-wrappers.sh. If you
have to write one, we suggest you base yourself upon, for instance, the rasterizer wrapper script, or any other one (just pick up any
direct reverse dependency of java-wrappers and look for scripts).
SEE ALSO
java(1), jdb(1)
/usr/lib/java-wrappers/java-wrappers.sh
AUTHOR
java-wrappers and its documentation were written by Vincent Fourmond <fourmond@debian.org>
Version 0.1.16 2010-05-04 JAVA-WRAPPERS(7)