BASH - 找不到xargs命令

问题描述:

我正在尝试创建一个BASH脚本来为我运行命令。这是其中一个命令的例子:BASH - 找不到xargs命令

function systemStart { 
    ./ORBMarkerDetection $1 $2 $3 | xargs -n3 java -jar ../../system/layers/out/artifacts/layers_jar/layers.jar 
} 

但是,当这跑,我收到错误(指上面的线):

./runActivities.sh: line 7: xargs: command not found 

我能够在运行此命令终端成功,所以我不确定为什么这不会在BASH脚本中运行?

我打电话,像这样的功能:

systemStart $PATH/1.1/cupCupboard.png $PATH/1.1/kitchenDoor.png $PATH/1.1/tap.png 
+0

是从$ PATH在脚本中的值不同在终端? – user4098326 2015-04-01 09:53:41

+0

我会检查,但命令,但直接从终端复制。路径是一样的。 – Colin747 2015-04-01 09:53:48

+0

我试过硬编码的路径,仍然存在相同的问题。似乎也没有任何隐藏的额外字符。 – Colin747 2015-04-01 09:55:18

你显然使用变量名PATH自己的目的,但你不能做到这一点 - PATH是保留变量,其变化将导致外壳找不到命令(不仅仅是xargs,而是基本上任何命令)。

通常,您应该避免使用大写变量名;那么你可以确定你的永远不会与内置的shell变量冲突。

+0

这就是问题所在,感谢您的发现! – Colin747 2015-04-01 09:56:10

(您可能需要将完全限定的路径在你的脚本?)

命令which可以告诉你的东西完全合格的路径。

[email protected]:~$ which xargs 
/usr/bin/xargs 

locate也可以告诉你文件的位置

最后,再使用find蛮力全文件系统搜索:

[email protected]:~$ find/-name "xargs" 2> /dev/null 
/usr/bin/xargs