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
答
你显然使用变量名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
是从$ PATH在脚本中的值不同在终端? – user4098326 2015-04-01 09:53:41
我会检查,但命令,但直接从终端复制。路径是一样的。 – Colin747 2015-04-01 09:53:48
我试过硬编码的路径,仍然存在相同的问题。似乎也没有任何隐藏的额外字符。 – Colin747 2015-04-01 09:55:18