2010-03-10 6 views
3

Je suis nouveau bash si s'il vous plaît garder avec moi si cela est une question stupide:Bash erreur fonction shell: command not found

Ce que je veux vraiment taper dans la coquille est comme ceci:

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

Le fait est, si je tape manuellement la ligne ci-dessus dans bash, il s'exécute sans erreur. Cependant, si je CRAFT une fonction personnalisée dans .bashrc comme ceci:

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

Et cette commande en bash:

compile Testclient 

Il obtient une erreur en disant que:

bash: javac -classpath "emarket.jar" Testclient.java -Xlint: non coché: commande introuvable

Je suppose que la fonction compile() dans .bashrc devrait générer la même commande dans bash, mais je ne peux vraiment pas m'en sortir, quelqu'un peut-il m'aider? Merci d'avance!

Répondre

8

enlever les guillemets simples qui entourent toute la commande, et d'utiliser des guillemets doubles autour [email protected]

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

voir here pour citer des exemples de variables.

+0

Merci beaucoup pour cela !!! –

1

Le problème est les guillemets ' dans votre fonction de compilation. Cela provoque le shell de ne pas casser les choses à blanc et traiter la chaîne entière comme la commande (plutôt que le premier mot comme la commande, et le reste comme arguments.) Supprimer ceux-ci et cela devrait fonctionner

+0

merci pour l'info. –

Questions connexes