1、问题
可能偶然想晚上定时编译android系统
2、解决
at.sh
#!/bin/sh
# at -f at.sh now+1min
# at -l
set -e
set -x
echo $SHELL
echo 'at build begin'
/bin/date >> at_build.log
/bin/bash -c 'source build/envsetup.sh >> at_build.log 2>&1; lunch xxx-userdebug >> at_build.log 2>&1; m -j32 >> at_build.log 2>&1'
# 或者
/bin/bash -c './at.work.sh'
# follow steps will error, must be /bin/bash or bash
# source build/envsetup.sh >> at_build.log 2>&1
# lunch xxx-userdebug >> at_build.log 2>&1
# m -j32 >> at_build.log 2>&1
echo 'at build end'
/bin/date >> at_build.log
at.work.sh
#!/bin/bash
source build/envsetup.sh >> at_build.log 2>&1
lunch xxx-userdebug >> at_build.log 2>&1
m -j32 >> at_build.log 2>&1
难点就是at这个命令默认使用的是/bin/sh。也不能设置成/bin/bash(我找不到办法设置成/bin/bash,有大佬知道吗?)
编译android需要/bin/bash ,虽然sh软连接到bash,但是照样不行。
所以,不能直接在脚本写
source build/envsetup.sh
lunch xx
m -j32
需要,用bash来启动编译
/bin/bash -c ‘source build/envsetup.sh >> at_build.log 2>&1; lunch xxx-userdebug >> at_build.log 2>&1; m -j32 >> at_build.log 2>&1’