bash - bash 中的源脚本,脚本中存在 $ 字符

标签 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”?

最佳答案

首先我猜 value 会读作 -Daccesskey=abc 而不是 -Daccesskey=abcdef 因为 $def 会被扩展为空值。

如果要覆盖,可以使用\转义美元符号:

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

关于bash - bash 中的源脚本,脚本中存在 $ 字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38387891/

相关文章:

tomcat - Grails 应用程序无法在 Tomcat7 中启动 - 无法从日志中获取任何有用的信息?

linux - 如何将字符串添加到二进制操作然后将其保存到 bash 中的 .dat 文件

bash - Bash Shell 的新应用程序

linux - Bash 脚本 - 以这种方式安装是好的做法吗?

linux - 在shell中执行命令并打印出摘要(时间+内存)?

bash - 将 pipelinev shell 作为 bash 脚本的一部分运行

java - 尝试访问 websocket 时出现错误 404

linux - 在 Bash 脚本中过滤类型错误的正确方法是什么?

python - 将多个目录中的同名文件复制到一个目录中

jsf - 在 Servlet 2.4 容器上运行 JSF 2.0