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

标签 android bash shell cyanogenmod repo

我正在运行 linux mint 17.2,我安装了 repo 并且 repo 的路径被添加到我的 .bashrc 中。我之前已经启动了我的 repo

我已按照 Android Source Downloading 上的说明进行操作和 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

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

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

最佳答案

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

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

关于android - repo :在自动 bash 脚本中找不到用于构建 cyanogenmod 的命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33667165/

相关文章:

macos - Bash:如何将参数与 if 语句进行比较?

java - 如何在多台远程计算机上运行 Python 脚本?

java - Android - 如何并行运行多个线程

java - Java 中静态类的 Field.set()

android - 在 Firebase 中,我可以将一个用户连接到多个表吗?

regex - 如何在 Bash 中拆分 URL 参数

java - Java Android 中的位图回收()

bash - 替换最多第 n 个匹配项

bash - 如何grep文件中不区分大小写的字符串?

linux - 使进程保持事件状态并跟踪最新的 pid