bash中的源脚本,脚本中存在$ character;

时间:2016-07-15 04:31:15

标签: bash shell tomcat

当tomcat启动时,它会检查$ CATALINA_HOME / bin / setenv.sh,如果它存在,它会提供此文件,如下所示

. $CATALINA_HOME/bin/setenv.sh

以下是我的setenv.sh文件的内容

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

来源时,“ -Daccesskey = abc $ def ”值将被读作“ -Daccesskey = abcdef ”。字符 $ 消失了。

我正在生成setenv.sh文件。我应该如何指定setenv.sh的内容,以便我读取值“ abc $ def ”?

2 个答案:

答案 0 :(得分:3)

首先,我猜我的价值会被理解为-Daccesskey=abc而不是-Daccesskey=abcdef,因为$def会扩展为空值。

如果要覆盖,可以使用\

来转义美元符号
JAVA_OPTS="$JAVA_OPTS -Daccesskey=abc\$def"

答案 1 :(得分:0)

对于文字$只是逃避它;)

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