2010-03-10 99 views
3

我是新來bash的,所以請大家多多包涵,如果這是一個愚蠢的問題:的Bash shell功能錯誤:找不到命令

什麼其實我是想在shell輸入是這樣的:

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

事實是,如果我手動將上面的行輸入到bash中,它將執行時沒有錯誤。 但是,如果我在.bashrc中製作一個自定義的功能是這樣的:

function compile() { 'javac -classpath "emarket.jar" '[email protected]'.java -Xlint:unchecked';} 

而且在bash發出以下命令:

compile Testclient 

它得到一個錯誤,說:

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

我認爲在.bashrc中的函數compile()應該在bash中生成相同的命令,但我真的無法通過這個,任何人都可以幫助我嗎?提前謝謝了!

回答

8

刪除整個周圍命令單引號,並使用雙引號括住[email protected]

function compile() { 
    javac -classpath "emarket.jar" "[email protected]".java -Xlint:unchecked; 
} 

看到here的引用變量的例子。

+0

非常感謝! – 2010-03-10 03:49:56

1

問題是編譯函數中的'引號。這會導致shell不會在空白處將事件分解並將整個字符串視爲命令(而不是第一個詞作爲命令,其餘部分作爲參數)。刪除這些並且它應該可以工作

+0

感謝您的信息。 – 2010-03-10 03:55:42