repo:在自动bash脚本中找不到命令来构建cyanogenmod

时间:2015-11-12 08:31:57

标签: android bash shell cyanogenmod repo

我正在运行linux mint 17.2,我安装了repo,并且repo的路径已添加到我的.bashrc。我之前已发起了repo

我已按照Android Source DownloadingHow 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的脚本来打开一个终端),它就能完美地运行。

我尝试了什么:我尝试在sleep 10之前加入repo sync --force-sync -j8,但没有任何区别。在尝试PATH之前,我还尝试显式启动repo并强制将其添加到我的repo sync --force-sync -j8当前终端会话。该测试的代码如下:

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

以下两个问题的标题相似,但我的问题thisthis都不是。

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

1 个答案:

答案 0 :(得分:0)

总而言之,结果是2个问题。第一个是我尝试在脚本中手动设置路径的解决方案,因为PATH=~/Android/Cyanogenmod/bin/repo:$PATH应该只是PATH=~/Android/Cyanogenmod/bin:$PATH

第二个也是整体较大的问题是我的PATH中错误添加的repo变量(.bashrc}。通过将export PATH=$PATH:$HOME/Android/Cyanogenmod/bin行添加到.profile的末尾,然后注销/进来修复此问题。