linux - Bash shell 函数错误 : command not found

标签 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 中生成相同的命令,但我真的无法通过这个,有人可以帮助我吗?非常感谢!

最佳答案

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

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

参见 here用于引用变量示例。

关于linux - Bash shell 函数错误 : command not found,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2414374/

相关文章:

linux - 使用 sed 命令重复字符串中的数字两次

linux - 将标准输出通过多行管道传输到单个文件

linux - 功能适用于相对路径输入但不适用于绝对路径输入

linux - 通知发送导致选项数量无效

python - 如何将输入保存到 txt 文件。在linux命令行输入

linux - 使用 Bash shell 中内置的 'command'

bash - 使用 bash 脚本删除 postgresql 中的所有表

linux - 在 BASH 中,我需要根据 perl 脚本的输出更改一些环境变量。在 tcsh 中,我可以使用别名 eval 组合。不能在 bash 中

bash - `ulimit -t` 在 shell 和操作系统之间完全不可移植?

python - 什么是 os.fdopen() 语义?