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

repo: command not found in automated bash script to build cyanogenmod

我是 运行ning linux mint 17.2,我安装了 reporepo 的路径已添加到我的 .bashrc。我之前已经启动了我的 repo.

我已按照 Android Source Downloading and How to Build CyanogenMod 页面上的说明进行操作。

问题是:我写了一个bash脚本来自动执行一些我想用来开始构建的命令。我的简单形式的脚本如下:

#!/bin/bash
cd ~/Android/Cyanogenmod/cm12_1/android/system
source build/envsetup.sh
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 并强制将其添加到当前终端 session 的 PATH 中。该测试的代码如下:

#!/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

以下2个问题标题相似,但都不是我的问题,this and this

任何帮助或建议都将非常有用,谢谢!

总结一下,原来有2个问题。首先,是在我尝试手动设置脚本路径的解决方案中,因为 PATH=~/Android/Cyanogenmod/bin/repo:$PATH 应该只是 PATH=~/Android/Cyanogenmod/bin:$PATH.

第二个也是更大的问题是在我的 .bashrc 中错误地添加了 PATH 变量(到 repo)。这是通过将行 export PATH=$PATH:$HOME/Android/Cyanogenmod/bin 添加到我的 .profile 的末尾,然后记录 out/in.

来解决的