BASH - 找不到 xargs 命令

BASH - xargs command not found

我正在尝试创建一个 BASH 脚本,它将 运行 我的命令。这是命令之一的示例:

function systemStart {
    ./ORBMarkerDetection    | 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

您显然是出于自己的目的使用变量名称 PATH,但您不能这样做——PATH 是一个保留变量,更改它会导致 shell 找不到命令(不仅是 xargs,基本上是任何命令)。

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

(您可能需要将完全限定路径放入脚本中?)

命令which可以告诉你事物的完全限定路径。

robert@debian:~$ which xargs
/usr/bin/xargs

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

最后,使用 find 进行暴力完整文件系统搜索:

robert@debian:~$ find / -name "xargs" 2> /dev/null
/usr/bin/xargs