【问题标题】:Passing command line argument from the terminal with apostrophe or quote从带有撇号或引号的终端传递命令行参数
【发布时间】:2015-05-16 05:14:21
【问题描述】:

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

我的情况略有不同:

我正在从 bash 终端向我的 java 程序传递一个参数。可能参数的数量是有限的(准确地说是 20 个),其中之一是“阿尔茨海默氏症”。但是如果我输入

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

这是我看到的:

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

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

【问题讨论】:

    标签: bash command-line-arguments


    【解决方案1】:

    引用它;单个撇号,当它本身没有被引用时,被视为引用字符串的开头。 bash 正在等待你完成引用的字符串。

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

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

    【讨论】:

    • 啊,谢谢!我总是转义单引号(例如,在 grepping 时),但是这一次,我的脑海中称它为“撇号”,我从来没有想过它是单引号!现在我必须等待 7 分钟才能接受这个答案。这适用于非 bash shell 吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-15
    • 2011-04-26
    • 2020-10-03
    • 2018-01-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多