通过 shell 脚本找不到命令,但可以在终端上运行

通过 shell 脚本找不到命令,但可以在终端上运行

在我的 shell 脚本中,我无法调用ant, or mvorcp命令,但相同的命令在终端上执行。下面是我的脚本:

样本.sh 文件

#! /bin/sh
cp filename.so filename_org.so
android update project -p .
ant clean
ant release

PATH 在文件中设置.bashrc

export PATH=$PATH:/usr/bin/

cpmvant仅在终端下工作,而不是通过脚本工作。

答案1

由于您的脚本是 shell 脚本 ( /bin/sh),因此您的PATH条目.bashrc将不会像bash( /bin/bash) 交互式 shell 那样被读取。

要使您的条目可供特定用户运行的脚本PATH使用,请将条目添加到该用户主目录中的文件中。/bin/shPATH.profile


此外,您可以在脚本中添加每个命令的完整路径:

/bin/cp filename.so filename_org.so

或者在脚本开头设置PATH包含所有必需变量的变量。$PATHS

PATH=$PATH:/bin:/usr/bin:xxx
export PATH

答案2

如果你有小脚本,你可以做一件简单的事情并尽快完成你的工作

进入命令行使用下面的命令

which your_command 

上面的命令将打印输出,包括直接使用该命令的路径

答案3

运行路径在 bashrc 中设置的二进制文件时遇到同样的问题。

通过执行以下操作解决了该问题:

添加二进制文件或在 /usr/bin 中添加二进制文件的链接。

ln -s [path_to_binary] [name_of_executable] 

然后检查使用

ls -l

您可以删除 bashrc 中的条目。

相关内容