gpt4 book ai didi

java - 在 msys 的脚本中将带引号的字符串参数传递给 java

转载 作者:行者123 更新时间:2023-11-29 09:18:46 35 4
gpt4 key购买 nike

我一直在尝试从 Windows 机器上的 msys 中的 bash 脚本运行一些 java 程序。具体来说,我在命令行上使用 WEKA 自动执行一些任务。我有一些问题,其中引用的字符串未正确传递给 java。实际代码循环运行一系列命令。这是一个精简版本,即 $RUN 包含数组元素字符串的单个迭代。

#!/bin/bash

export CLASSPATH=CLASSPATH:weka.jar:libsvm.jar

RUN="java weka.classifiers.functions.LibSVM -S 0 -K 2 -D 3 -G 0.0 -R 0.0 -N 0.5 -M 1000.0 -C 1000000.0 -E 0.0010 -P 0.1 -Z -W '1 2' -t trainFile.csv -T testFile.csv "

# does not work, returns => Weka exception: For input string: "'1"
$RUN > reportFile.txt

RUN="java weka.classifiers.functions.LibSVM -S 0 -K 2 -D 3 -G 0.0 -R 0.0 -N 0.5 -M 1000.0 -C 1000000.0 -E 0.0010 -P 0.1 -Z -W \"1 2\" -t trainFile.csv -T testFile.csv "

# does not work, returns => Weka exception: For input string: ""1"
$RUN > reportFile.txt

RUN="java weka.classifiers.functions.LibSVM -S 0 -K 2 -D 3 -G 0.0 -R 0.0 -N 0.5 -M 1000.0 -C 1000000.0 -E 0.0010 -P 0.1 -Z -t trainFile.csv -T testFile.csv "

# works without the string argument for -W
$RUN > reportFile.txt

问题似乎是字符串 "1 2" 被分成了两个参数。如何将它们合并为一个论点?

我正在使用 Windows 7,msysmintty 终端。

最佳答案

试试这个解决方法:

RUN="weka.classifiers.functions.LibSVM -S 0 -K 2 -D 3 -G 0.0 -R 0.0 -N 0.5 -M 1000.0 -C 1000000.0 -E 0.0010 -P 0.1 -Z -W \"1 2\" -t trainFile.csv -T testFile.csv"
echo $RUN | xargs java > reportFile.txt

关于java - 在 msys 的脚本中将带引号的字符串参数传递给 java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7816069/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com