回购:在自动 bash 脚本中找不到用于构建 cyanogenmod 的命令
repo: command not found in automated bash script to build cyanogenmod
我是 运行ning linux mint 17.2,我安装了 repo
,repo
的路径已添加到我的 .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.
来解决的
我是 运行ning linux mint 17.2,我安装了 repo
,repo
的路径已添加到我的 .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.