Android repo:在自动bash脚本中找不到用于构建cyanogenmod的命令

Android repo:在自动bash脚本中找不到用于构建cyanogenmod的命令,android,bash,shell,cyanogenmod,repo,Android,Bash,Shell,Cyanogenmod,Repo,我正在运行LinuxMint17.2,安装了repo,并且repo的路径被添加到我的.bashrc中。我以前启动过我的回购 我已按照和页上的说明进行操作 问题在于:我编写了一个bash脚本,用于自动执行许多我希望用于启动构建的命令。我的简单脚本如下所示: #!/bin/bash cd ~/Android/Cyanogenmod/cm12_1/android/system source build/envsetup.sh repo sync --force-sync -j8 exec $SHELL

我正在运行LinuxMint17.2,安装了
repo
,并且
repo
的路径被添加到我的
.bashrc
中。我以前启动过我的
回购

我已按照和页上的说明进行操作

问题在于:我编写了一个bash脚本,用于自动执行许多我希望用于启动构建的命令。我的简单脚本如下所示:

#!/bin/bash
cd ~/Android/Cyanogenmod/cm12_1/android/system
source build/envsetup.sh
repo sync --force-sync -j8
exec $SHELL
#!/bin/bash
mkdir -p ~/Android/Cyanogenmod/bin
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/Android/Cyanogenmod/bin/repo
chmod a+x ~/Android/Cyanogenmod/bin/repo
cd ~/Android/Cyanogenmod/cm12_1/android/system/
source build/envsetup.sh
PATH=~/Android/Cyanogenmod/bin/repo:$PATH
repo sync --force-sync -j8
exec $SHELL
当我运行此程序时,它会报告:

/home/username/Desktop/Cyanogenmod_cm12_1_Grouper_Build : line 4 repo: command not found
如果我将每一行复制并粘贴到一个新的终端实例中(或者通过运行
#!/bin/bash exec$SHELL
脚本来打开终端),它就可以完美地工作

我试过的:我试过在
repo-sync--force-sync-j8
之前加入
sleep 10
,但没有什么不同。在尝试
repo sync--force sync-j8
之前,我还尝试显式启动repo,并直接将其添加到当前终端会话的
路径中。该测试的代码如下所示:

#!/bin/bash
cd ~/Android/Cyanogenmod/cm12_1/android/system
source build/envsetup.sh
repo sync --force-sync -j8
exec $SHELL
#!/bin/bash
mkdir -p ~/Android/Cyanogenmod/bin
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/Android/Cyanogenmod/bin/repo
chmod a+x ~/Android/Cyanogenmod/bin/repo
cd ~/Android/Cyanogenmod/cm12_1/android/system/
source build/envsetup.sh
PATH=~/Android/Cyanogenmod/bin/repo:$PATH
repo sync --force-sync -j8
exec $SHELL
以下两个问题的标题相似,但我的问题和都不是


任何帮助或建议都会很好,谢谢

总之,有两个问题。首先,在我尝试的解决方案中,手动将脚本中的路径设置为
path=~/Android/Cyanogenmod/bin/repo:$path
应该是
path=~/Android/Cyanogenmod/bin:$path


第二个更大的问题是,在my
.bashrc
中错误地添加了
PATH
变量(到
repo
)。这是通过在我的
.profile
末尾添加行
导出路径=$PATH:$HOME/Android/Cyanogenmod/bin
,然后注销/登录来解决的。

这个问题太吵了。Command not found就是Command not found,简单易用。您的脚本可以归结为一个shebang和一个命令
repo
,您仍然会得到完全相同的错误,而没有这堵墙中描述的内容。您的错误在
PATH=~/Android/Cyanogenmod/bin/repo:$PATH
。您需要的是
PATH=~/Android/Cyanogenmod/bin:$PATH
。谢谢!我在我的
.bashrc
中有这样的功能,实际上,当我在同一个终端会话中显式地尝试它时,只是没有正确地尝试它。不过,这又引出了另一个问题,为什么脚本中没有这一行就不能工作?我的
.bashrc
当前有:
export PATH=${PATH}:~Android/Cyanogenmod/bin
?在脚本中打印
$PATH
,检查您是否真的找到了正确的路径。不,我要求您在脚本中
回显$PATH