当前标签 / shell / 总共2篇

使用shell命令自动打包和处理和安装apk

我最近在工作中遇到一个经常重复的安装和复制操作,需要不定期给某几台设备安装apk并且要预装文件和设置设备序列号以及Mac地址。我今天尝试将这些操作用shell脚本一键处理,结果很成功。

在shell脚本中执行adb命令的方式有多种,可以直接adb shell + 命令执行也可以将命令全部放入一个txt文本文件,通过adb shell < 文件路径, 来批量执行。

脚本运行过程

定义路径

shell_path="/home/shuihan/Documents/shell/"
model1_name="M_Liveness_Antispoofing_Binocular.model"
model2_name="M_Verify_MIMICG2_Common_3.17.0_v1.model"
project_path="/home/shuihan/workspace/Faceye/"
apk_path=$project_path"app/build/outputs/apk/release/"
assets_path="/home/shuihan/workspace/Faceye/app/src/main/assets/"
target_path="/sdcard/sensetime/"

shell_path是我当前shell脚本文件的所在路径 model1_name和model2_name是我需要写入移动设备的两个文件名称,这两个文件在assets_path目录下。 project_path是我Android工程的根目录。 target_path是需要写入到移动设备内的路径。

写入文件到移动设备

echo "写入第一个model文件"
adb push $assets_path$model1_name $target_path$model1_name

echo "写入第二个model文件"
adb push $assets_path$model2_name $target_path$model2_name

使用adb push命令将PC中的两个文件写入到移动设备中。

构建打包

read -p "是否需要执行构建打包操作y/n?" pk
if [ "$pk" == "y" ];then
echo "开始打包"
cd $project_path
chmod +x gradlew
./gradlew assembleRelease
fi

询问是否需要打包,如果需要打包,则执行项目根目录下的gradlew脚本,这个脚本是Android中gradle自动生成的,在windows系统中是gradlew.bat文件。

如果要打debug包,就执行./gradlew assembleDebug

阅读更多

使用shell脚本来实现多平台一键提交和发布

最近将我的gitlab上面的博客倒腾了一番,结果发现访问速度堪忧啊!但是服务器又买不起,就又想到了码云,毕竟码云在国内访问速度比gitlab块不少,但是我又舍不得直接放弃gitlab,所以就想到了这个办法,gitlab和码云同时发布我的hexo博客文章。

shell基本语法

定义只读变量

使用readonly关键字来定义只读变量

gitlab_path="/home/shuihan/Documents/lxqxsyu.gitlab.io"
readonly gitlab_path

注意定义变量的时候等号两边不要留空白,字符串可以用双引号也可以用单引号。

定义函数

commitToGitlab(){
    echo "开始提交代码到Gitlab"
    cd $gitlab_path
    git add .
    git commit -m "$1"
    echo "提交代码到Gitlab成功:$1"
}

函数的传参是通过$1,$2,…来实现的

commitToGitlab "submit"
#输出为 提交代码到Gitlab成功:submit

注意shell的执行是顺序执行的,所以函数的定义要放在调用前。

逻辑判断

echo -e "输入c只提交不发布\n输入p则发布到远程服务器\n输入cp提交并且发布"
read -t 5 ml
echo -e "\n"
if [ "$ml" == "p" ];then
    publish
elif [ "$ml" == "c" ];then
    commit
elif [ "$ml" == "cp" ];then
    commit
    publish
else
    echo "请输入正确的命令,执行失败"
fi

注意:[ ]内左右两边要留空白, read是等待输入的命令, -t参数代表等待时间。

阅读更多