2017-10-06 2 views
1

Ich versuche es viele Jvm Parameter eine Variable übergeben und exportieren und in anderen Skript aufrufen, aber Raum nad doppelte Anführungszeichen in Parameter schlagen mich. ("/ 05 abcdef")Bash Export und verwenden Variable mit Anführungszeichen und Raum in Skript

Mein Code:

#!/bin/bash 
NORMAL_VARIABLE=-DNORMAL.NormalText=normal124 
PROBLEMATIC_VARIABLE='-DPROBLEM.ProblematicText="/05 abcdef"' 
SUM="$NORMAL_VARIABLE $PROBLEMATIC_VARIABLE" 
export SUM 

Ziel Skript:

java $SUM -jar "ApacheJMeter.jar" "[email protected]" 

tatsächliche Ausgabe im Debug-Modus:

+ NORMAL_VARIABLE=-DNORMAL.NormalText=normal124 
+ PROBLEMATIC_VARIABLE='-DPROBLEM.ProblematicText="/05 abcdef"' 
+ SUM='-DNORMAL.NormalText=normal124 -DPROBLEM.ProblematicText="/05 abcdef"' 
+ export SUM 
+ java -DNORMAL.NormalText=normal124 '-DPROBLEM.ProblematicText="/05' 'abcdef"' -jar ApacheJMeter.jar 
Error: Could not find or load main class abcdef" 

jemand eine Idee, wie man löse es?

Ich möchte zu bekommen:

java -DNORMAL.NormalText=normal124 -DPROBLEM.ProblematicText="/05 abcdef" -jar ApacheJMeter.jar 
+0

Willkommen Überlauf zu stapeln. Ist es ein Pfad/05 abcdef? Oder eine Datei abcdef in 05 Verzeichnis usw. genannt, weil ich in Fehlermeldung sehen konnte, es sagt nicht Klasse abcdef finden konnten, lassen Sie mich wissen, auf gleiche – RavinderSingh13

+0

Hallo! "/ 05 abcdef" ist ein Wert des Parameters. Probleme aufrufen Hexe java: 'java -DNORMAL.NormalText = normal124 '-DPROBLEM.ProblematicText = "/ 05' ' abcdef" '-jar ApacheJMeter.jar' statt: ' java -DNORMAL.NormalText = normal124 -DPROBLEM.ProblematicText = "/ 05 abcdef" -jar ApacheJMeter.jar' –

Antwort

1

Wenn Sie bash verwenden, können Sie Arrays verwenden.

#!/bin/bash 
NORMAL_VARIABLE=-DNORMAL.NormalText=normal124 
PROBLEMATIC_VARIABLE=-DPROBLEM.ProblematicText="/05 abcdef" 
SUM=($NORMAL_VARIABLE "$PROBLEMATIC_VARIABLE") 

Und dann

java "${SUM[@]}" -jar "ApacheJMeter.jar" "[email protected]" 
+0

Was ist der Vorteil des Arrays für 'PROBLEMATIC_VARIABLE'? Scheint so, als ob es eine Zeichenfolge in einfachen Anführungszeichen wäre. –

+0

@ TomFenech: True, behoben. – choroba

+0

Ich denke, die einfachen Anführungszeichen werden benötigt, sonst wären die Anführungszeichen syntaktisch. –

Verwandte Themen