我有一个通过bash脚本在Linux环境中执行的Java程序。
这是我的简单bash脚本,它接受一个字符串。
#!/bin/bash
java -cp com.QuoteTester $1
问题是命令行参数可以带空格,也可以不带空格。
例如,它可以是:
Apple Inc. 2013 Jul 05 395.00 Call
或
Apple
我的代码是:
public static void main(String[] args)
{
String symbol = args[0];
if (symbol.trim().contains(" ")) // Option
{
}
else // Stock
{
}
}
所以问题是,当我试图以这种方式执行它时:
./quotetester Apple Inc. 2013 Jul 05 395.00 Call
它是唯一一个else condition
,也就是股票。
有什么办法可以解决这个问题吗?
发布于 2013-07-13 00:44:00
当您使用空格传递命令行参数时,它们将被视为空格分隔的参数,并在空格上拆分。所以,你实际上没有一个参数,而是多个参数。
如果要传递带空格的参数,请使用引号:
java classname "Apple Inc. 2013 Jul 05 395.00 Call"
发布于 2013-07-13 00:46:40
参数是由shell处理的,所以任何终端设置都不会影响到这一点。你只需要引用参数,它应该是有效的。
发布于 2018-09-28 07:31:18
单引号是最佳选择
空格和双引号可以这样解决。
java QuerySystem '((group = "infra") & (last-modified > "2 years ago"))'
https://stackoverflow.com/questions/17619831
复制相似问题