-bash:从命令行运行Java程序时,意外令牌'('附近的语法错误

时间:2018-10-25 15:50:05

标签: java bash

当试图从命令行运行基本计算器Java程序时,我试图弄清楚为什么我得到-bash:语法错误,出现意外标记'('附近)。

该项目已完成提交并已评分,因此没有学术上的不诚实意图。

在我的终端(macOs 10.13.6)中,我正在使用以下程序运行该程序:

java InfixExpressionEvaluator (a+b)*(c-9) "a=1 b=2 c=3";

其中(a+b) * (c-9)是要使用以下给定变量求值的表达式。但是,每次我得到-bash:意外标记'('附近的语法错误。这是由于表达式(a+b) * (c-9)的格式引起的吗?我对bash脚本不熟悉,但是在某些Google搜索中,它看起来好像终端试图将'('解释为脚本的一部分,为了解决这个问题,我需要将(a+b) * (c-9)放在引号内,即"(a+b) * (c-9)"。这是正确的,还是我有什么意思?丢失了吗?

1 个答案:

答案 0 :(得分:0)

需要引用“要评估的表达式”,因为它包含对Bash具有特殊意义的几个字符(()*)。这应该起作用:

java InfixExpressionEvaluator '(a+b)*(c-9)' 'a=1 b=2 c=3'

不需要扩展,因此我使用单引号而不是双引号。我删除了结尾的;,因为Bash不需要它。