Bash shell函数错误:找不到命令

Mic*_*Mao 3 linux bash shell

我是bash的新手,所以如果这是一个愚蠢的问题,请耐心等待:

我真正想在shell中输入的内容是这样的:

javac -classpath "emarket.jar" Testclient.java -Xlint:unchecked
Run Code Online (Sandbox Code Playgroud)

事实是,如果我手动将上面的行键入bash,它就会执行而不会出错.但是,如果我在.bashrc中制作一个自定义函数,如下所示:

function compile() { 'javac -classpath "emarket.jar" '$@'.java -Xlint:unchecked';}
Run Code Online (Sandbox Code Playgroud)

并在bash中发出此命令:

compile Testclient
Run Code Online (Sandbox Code Playgroud)

它有一个错误说:

bash:javac -classpath"emarket.jar"Testclient.java -Xlint:unchecked:command not found

我认为.bashrc中的函数compile()应该在bash中生成相同的命令,但我真的无法解决这个问题,任何人都可以帮助我吗?提前谢谢了!

gho*_*g74 8

删除整个命令周围的单引号,并使用双引号 $@

function compile() { 
  javac -classpath "emarket.jar" "$@".java -Xlint:unchecked;
}
Run Code Online (Sandbox Code Playgroud)

请参阅此处以引用变量示例.