首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >命令行参数中包含空格的问题

命令行参数中包含空格的问题
EN

Stack Overflow用户
提问于 2013-07-13 00:42:05
回答 4查看 47.2K关注 0票数 13

我有一个通过bash脚本在Linux环境中执行的Java程序。

这是我的简单bash脚本,它接受一个字符串。

代码语言:javascript
复制
#!/bin/bash
java -cp  com.QuoteTester $1

问题是命令行参数可以带空格,也可以不带空格。

例如,它可以是:

代码语言:javascript
复制
Apple Inc. 2013 Jul 05 395.00 Call   

代码语言:javascript
复制
Apple

我的代码是:

代码语言:javascript
复制
public static void main(String[] args) 
{
    String symbol = args[0];

    if (symbol.trim().contains(" ")) // Option
    {

    }

    else  // Stock 
    {

    }
}

所以问题是,当我试图以这种方式执行它时:

代码语言:javascript
复制
./quotetester Apple Inc. 2013 Jul 05 395.00 Call

它是唯一一个else condition,也就是股票。

有什么办法可以解决这个问题吗?

EN

回答 4

Stack Overflow用户

发布于 2013-07-13 00:44:00

当您使用空格传递命令行参数时,它们将被视为空格分隔的参数,并在空格上拆分。所以,你实际上没有一个参数,而是多个参数。

如果要传递带空格的参数,请使用引号:

代码语言:javascript
复制
java classname "Apple Inc. 2013 Jul 05 395.00 Call"
票数 23
EN

Stack Overflow用户

发布于 2013-07-13 00:46:40

参数是由shell处理的,所以任何终端设置都不会影响到这一点。你只需要引用参数,它应该是有效的。

票数 1
EN

Stack Overflow用户

发布于 2018-09-28 07:31:18

单引号是最佳选择

空格和双引号可以这样解决。

代码语言:javascript
复制
java QuerySystem '((group = "infra") & (last-modified > "2 years ago"))' 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17619831

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档