我有一个 clipscode,我想将其插入到我的数据库中,为此我编写了一个 Java 程序,它在 eclipse IDE 中运行良好,如果我的 clips 代码包含“$?”,它会保留在 eclipse IDE 中。查看 eclipse IDE 的输出
(defrule through_the_use_of_1364;through the use of
(Head-Level-Mother-Daughters ?h1 ?l1 ?m1 $? ?m $?)
=>
(printout debug_rule "(through_the_use_of_1364)" crlf))
问题出现于当我制作该程序的 jar 并在终端上运行时,“$?”被转换为 0。
请参见下面给出终端的输出。
(defrule through_the_use_of_1364;through the use of
(Head-Level-Mother-Daughters ?h1 ?l1 ?m1 0 ?m 0)
=>
(printout debug_rule "(through_the_use_of_1364)" crlf))
请帮我....
答案1
shell 正在解释$?
为前一个命令的退出状态。
为了防止 shell 解释:
使用引号括起来$?
:
(Head-Level-Mother-Daughters ?h1 ?l1 ?m1 "$?" ?m "$?")
或者
(Head-Level-Mother-Daughters ?h1 ?l1 ?m1 '$?' ?m '$?')
或者$
使用以下命令退出\
:
(Head-Level-Mother-Daughters ?h1 ?l1 ?m1 \$? ?m \$?)