2016-07-15 6 views
0

Wenn tomcat startet, überprüft es für $ CATALINA_HOME/bin/setenv.sh und wenn es vorhanden ist, bezieht es diese Datei wie unten

gezeigt
. $CATALINA_HOME/bin/setenv.sh 

Nach der Inhalt meiner setenv.sh Datei

JAVA_OPTS="$JAVA_OPTS -Daccesskey=abc$def" 

Wenn es stammt, ist der Wert "-Daccesskey = abc $ def" gelesen wird als "-Daccesskey = abcdef" sind. Zeichen $ ist weg.

Ich erstelle die Datei setenv.sh. Wie soll ich den Inhalt von setenv.sh so spezifizieren, dass ich den Wert "abc $ def" lese?

+0

'Wenn es bezogen ist .... es sollte als„-Daccesskey = abcdef“nicht gelesen werden' durch das Standardverhalten .. Siehe die Kommentare von [\ [This \]] (http://StackOverflow.com/a/38387938/1620779) Antwort – sjsam

Antwort

0

Für eine wörtliche $ nur entrinnen;)

JAVA_OPTS="$JAVA_OPTS -Daccesskey=abc\$def" 
3

Zunächst einmal denke ich Wert als -Daccesskey=abc gelesen haben würde und nicht -Daccesskey=abcdef weil $def würde leeren Wert erweitert werden.

Wenn Sie außer Kraft setzen möchten, können Sie das Dollarzeichen entkommen \ unter Verwendung:

JAVA_OPTS="$JAVA_OPTS -Daccesskey=abc\$def" 
+0

'würde als -Daccesskey = abc gelesen haben ist nicht korrekt, wie bei der Frage . – sjsam

+0

Wie würde Bash $ Zeichen alleine entfernen? Versuchen Sie nicht, '$ def 'zu erweitern? – Fazlin

+1

Ich habe getestet und es erweitert '$ def 'auf leeren Wert – Fazlin