【问题标题】:Bash shell function error : command not foundBash shell 函数错误:找不到命令
【发布时间】:2010-03-10 03:43:11
【问题描述】:

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

【问题讨论】:

    标签: linux bash shell


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-10-07
        • 2018-10-19
        • 2013-03-22
        • 1970-01-01
        • 1970-01-01
        • 2022-12-23
        相关资源
        最近更新 更多