zoukankan      html  css  js  c++  java
  • Linux下Tomcat如何传入'$'符号

    在实际的工作中,有同事有需求要在Tomcat的启动脚本中添加启动参数,而且启动参数中带有特殊的字符'$',在实际的应用程序中,使用System.getProperty()进行获取设置的值,但是这个字符会解析不出来。

    比如想在脚本中获取`aa`的值,预设值为'abc$123'

    JAVA_OPTS="$JAVA_OPTS "-Daa="abc$123"

    在代码中我想通过System.getProperty("aa"),获取到的值为"abc$123"

    获取属性的jsp

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <%@ page import="java.util.*"%>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <title>Insert title here</title>
    </head>
    <body>
    <h1>WELCOME</h1>
    <%
            String value = System.getProperty("aa");
            out.println(value);
    %>
    
    </body>
    </html>

    但是实际呢,获取的值为`abcrun23`

    但是在windows下直接加入到setvmargs.bat中如下设置,能够获取到正常值

    set JAVA_OPTS=%JAVA_OPTS% -Daa="abc$123"

    猜测是由于在Linux下,将$1作为当前调用脚本的第一个参数给替换了,因为我使用的是./catalina.sh run,所以就将$1替换成了run

    如何解决呢?

    经过各种实验,最终发现,可以通过转义符号与单引号混用,才可以避免替换

    使用的为

    JAVA_OPTS="$JAVA_OPTS "-Daa="abc'$'123"
  • 相关阅读:
    iOS进阶二-KVC
    iOS进阶一OC对象的本质
    2019-01-19
    2019-01-12
    2019
    2018-12-23 随笔
    2018-12-18 随笔
    2018-12-10
    2018-12-01
    2018.11.23 随笔
  • 原文地址:https://www.cnblogs.com/mubing/p/7238122.html
Copyright © 2011-2022 走看看