2010-03-10 3 views
3

Я новичок колотить так, пожалуйста, медведь со мной, если это глупый вопрос:Bash функция оболочки ошибка: команда не найдена

То, что я на самом деле хочу, чтобы напечатать в оболочке, как это:

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

Дело в том, что если я вручную начерчу указанную выше строку в bash, она выполняется без ошибок. Однако, если изготовить индивидуальные функции в .bashrc, как это:

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

И эту команду в Баш:

compile Testclient 

Он получает ошибку о том, что:

bash: javac -classpath «emarket.jar» Testclient.java -Xlint: unchecked: команда не найдена

Я считаю, что функция compile() в .bashrc должна генерировать ту же команду в bash, но я действительно не могу пройти через это, может ли кто-нибудь мне помочь? Спасибо заранее!

ответ

8

удалить одиночные кавычки вокруг всей команды, и использовать двойные кавычки [email protected]

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

см here для цитирования примеры переменных.

+0

Большое спасибо за это. !!! –

1

Проблема заключается в цитатах ' в вашей функции компиляции. Это заставляет оболочку не разбивать вещи на пробелы и обрабатывать всю строку как команду (а не первое слово в качестве команды, а остальное как аргументы). Удалить те, и она должна работать.

+0

спасибо за информацию. –