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

时间:2010-03-10 03:43:11

标签: linux bash shell

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

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

javac -classpath "emarket.jar" Testclient.java -Xlint:unchecked

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

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

并在bash中发出此命令:

compile Testclient

错误地说:

  

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

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

2 个答案:

答案 0 :(得分:8)

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

周围使用双引号
function compile() { 
  javac -classpath "emarket.jar" "$@".java -Xlint:unchecked;
}

请参阅here以获取变量示例。

答案 1 :(得分:1)

问题是编译函数中的'引号。这导致shell不会在空格中分解并将整个字符串视为命令(而不是第一个单词作为命令,其余作为参数。)删除它们并且它应该工作