使用撇号或引号从终端传递命令行参数

Passing command line argument from the terminal with apostrophe or quote

我看到有关将带引号的参数传递给 shell 脚本(例如 this question)的问题。

我的情况略有不同:

我正在从 bash 终端向我的 java 程序传递一个参数。可能的参数数量是有限的(准确地说是 20 个),其中之一是 "alzheimer's"。但是如果我输入

java -cp ... myclass --term alzheimer's

这是我看到的:

.. 然后我必须按 ctrl+C 退出它。

如果它是一个包含所有字母数字字符的单词,则一切正常。这种带撇号的情况怎么办?

引用它;单撇号本身未被引号时,被视为带引号的字符串的开头。 bash 正在等待您完成引用的字符串。

java -cp ... myclass --term "alzheimer's"

java -cp ... myclass --term alzheimer\'s