【发布时间】:2017-08-09 05:09:05
【问题描述】:
我正在尝试将字符串作为命令行参数传递给 java 程序以进行某些处理,并且它工作正常,除了传递的字符串参数具有一些特殊字符(如 $)的情况。做一个SOP,我发现参数本身已经被一些随机数而不是特殊字符扭曲了。这仅在 Linux 中发生,并且仅在参数具有某些特殊字符时发生。
$ java -jar testclient.jar String$$123
String 1 = String31733123
【问题讨论】:
-
引用它。
java -jar testclient.jar 'String$$123' -
$$是进程 ID。如果您不希望外壳用数字替换它,则需要对其进行转义。例如'String$$123' -
那些(很可能都是)特殊的 bash 变量:gnu.org/software/bash/manual/html_node/Variable-Index.html - 你需要“转义”它们(例如:用引号括起你的参数)
-
但在 Linux 中,其他特殊字符(如 !、$、&、(、) 也会出现此问题。有什么办法可以确保 java 解析这些字符串输入,而不使用转义序列?
标签: java linux special-characters sign dollar-sign