脚本基本实现逻辑为:重启开关机去判断是否识别到TP模组的VID PID和检测eGTouchD的服务是否跑起来,
如果有识别到设备并且服务有跑起来,则打印一次字符串detecte_success到创建的文件sdcard/det_usb_eGTouchD.log中,最后统计当前测试的重启次数,然后执行重启操作;
如果识别不到或者服务没起来,则打印字符串detecte_fail到创建的文件sdcard/det_usb_eGTouchD.log中,并且打印当前设备的dmesg和logcat到当前时间下创建的sdcard/XXXX.log文件中,
最后统计当前测试的重启次数,然后执行重启操作。
后续可以通过查看sdcard/det_usb_eGTouchD.log知道脚本执行的测试结果。

        具体操作说明:脚本文件:usbtp_det.sh然后执行以下:1、把usbtp_det.sh文件push 进入system/bin/目录:C:\Users\Administrator>adb rootC:\Users\Administrator>adb remountC:\Users\Administrator>adb push usbtp_det.sh system/bin/C:\Users\Administrator>adb shell chmod 755 system/bin/usbtp_det.shC:\Users\Administrator>adb shell sync2、在system/bin/lowmem_manage.sh 加入以下指令,注意加在文件最后一行,要在机器起来之后再去执行脚本:source usbtp_det.sh然后重启机器即可进入自动开关机测试TP的概率性失效问题。如果需要停止测试,需要在重启之前拔掉TP设备,并且在开机起来后2分钟内查看在sdcard目录对应的测试记录文件det_usb_eGTouchD.log或者把它pull出来查看,或者注释掉lowmem_manage.sh中的source usbtp_det.sh来停止测试。 【包括测试次数记录文件:det_usb_eGTouchD.log和dmesg、logcat的log文件等】注意:检测设备或者服务失败才会去抓取对应log的打印,检测成功则无log打印文件生成。
#!/bin/bashD_NAME=sdcard/det_usb_eGTouchD.log
DETECTE_SUCCESS=detecte_success
DETECTE_FAIL=detecte_fail
DATE=`date +%Y-%m-%d_%H_%M_%S`
DMESG_LOG=dmesg
LOGCAT_LOG=logcat
INPUT_LOG=cat_input#create file to write
if [ ! -f "$D_NAME" ]; thenecho "log file will creat."touch ${D_NAME}
elseecho "log file already exists."
fi#retry 5
count=0
while [[ $count -lt 5 ]]
do
let count++#service detection
if [ "$(lsusb |grep 0eef:c000)" ] && [ "$(ps | grep eGTouchD |wc -l)" -eq "1" ]; thenecho "Current TP driver and service eGTouchD startup success."setprop  persist.sys.tp.logprint  0sleep 1breakelseecho "Current TP driver and service eGTouchD startup failed."setprop  persist.sys.tp.logprint 1sleep 1
fidone#print log
gtdetecte_tp=`getprop persist.sys.tp.logprint`
if [ "$gtdetecte_tp" != "0" ] ; thensleep 110echo "${DETECTE_FAIL}"echo $DETECTE_FAIL >> ${D_NAME}dmesg >>  sdcard/${DMESG_LOG}_${DATE}.log &logcat -v time >>  sdcard/${LOGCAT_LOG}_${DATE}.log &cat proc/bus/input/devices >> sdcard/${INPUT_LOG}_${DATE}.log &elsesleep 5echo "${DETECTE_SUCCESS}"echo $DETECTE_SUCCESS >> ${D_NAME}fi#count
OPS_NUMBER=$(grep -nr "detecte" ${D_NAME} | wc -l)
#OPS_NUMBER=$(cat ${D_NAME} | grep "detecte" | wc -l)
echo "********************" >> ${D_NAME}
echo "Count current restarts..."
echo "Current test times" >> ${D_NAME}
echo $OPS_NUMBER >> ${D_NAME}
echo "********************" >> ${D_NAME}#setting reboot ops
setprop persist.sys.tp.reboot 1
gtdetecte_reboot=`getprop persist.sys.tp.reboot`
if [ "$gtdetecte_reboot" != "0" ] ; thenecho "5s after will reboot."sleep 5reboot
elseecho "No reboot."sleep 5
fi

SHELL脚本项目实例(一)相关推荐

  1. jar包部署shell脚本编写,在服务器上部署jar包,在Linux服务器上部署服务,设置编码格式,设置内存管理

    准备步骤: 1.安装java环境,知道java安装目录 2.将jar包拖放或发送至服务器中(目录自定义) 一.编写shell脚本,将以下代码放在shell脚本中,将shell脚本放在jar包同级目录下 ...

  2. 快速给shell脚本加上使用提示

    我们只需通过在shell脚本前面加上如下的代码即可: #!/bin/bash ### ### my-script - does one thing well ### ### Usage: ### my ...

  3. Ubuntu系统执行shell 脚本的方法

    使用前了解 Shell: Shell本身是一个用C语言编写的程序,它是用户使用Linux的桥梁 Shell: Shell 脚本(shell script),是一种为 shell 编写的脚本程序. 下面 ...

  4. Windows 系统执行Shell 脚本的方法

    使用前了解 Shell: Shell本身是一个用C语言编写的程序,它是用户使用Linux的桥梁 Shell: Shell 脚本(shell script),是一种为 shell 编写的脚本程序. 下面 ...

  5. shell监控java接口服务_Linux系统下Java通过shell脚本监控重启服务

    简介 最近运维人员提出需求,增加一个运维页面, 查询当前的业务进程信息包括:进程名称.启动命令.启动时间.运行时间等,可以通过页面点击重启按钮,可以重启后端的一系列系统进程. 思路 java程序获取l ...

  6. linux 脚本 alias,在shell脚本中使用alias别名

    本文最后更新于2015年7月12日,已超过 1 年没有更新,如果文章内容失效,还请反馈给我,谢谢! 缘由: 经常用Linux进行操作的同学一般都会有各种各样的技巧来提升工作效率,而添加/改写shell ...

  7. linux shell脚本攻略_(python)Linux下shell脚本监控Tomcat的状态并实现自动启动步骤...

    今天为大家带来的内容是:(python)Linux下shell脚本监控Tomcat的状态并实现自动启动步骤 本文内容主要介绍了Linux下shell脚本监控Tomcat的状态并实现自动启动的步骤,文章 ...

  8. linux重启sh脚本,Linux 之shell脚本系列之服务启动/关闭/重启/状态

    一 问题 自己开发的程序,如何用shell 脚本实现 启动,关闭,重启,查看状态? 二 方案 myshell.sh #!/bin/sh SERVICE="fm_tuoguan_shell&q ...

  9. linux按文件名排序ls,linux – 如何使用shell脚本按名称对文件进行排序

    我想用 Shell脚本按日期排序所有文件. 例如,在/ Users / KanZ / Desktop / Project / Test /中有文件M1.h,A2.h和F4.h. 每个文件都有不同的时间 ...

  10. linux 脚本 符号,Shell脚本 入门 —— 符号篇

    shell变量 shell变量不需要进行任何声明,直接定义即可,因为shell变量的值实际上都是字符串(对于没有定义的变量默认是一个空串).定义的时候shell变量由大写字母加下划线组成,并且定义的时 ...

最新文章

  1. requests与urllib.request
  2. js课程 5-14 js如何实现控制动画角色走动
  3. scanf 接收 空格 输入_【C/C++】【输入】关于scanf:输入空格,多次使用
  4. 如何用tadodataset.append
  5. Xadmin添加用户小组件出错
  6. oracle 如何形成死锁,Oracle数据表中的死锁情况解决方法
  7. c ++查找字符串_C ++朋友功能| 查找输出程序| 套装2
  8. Android开发笔记(六十三)HTTP访问的通信方式
  9. BXP_4.1安装配置及域应用随记一
  10. linux下载安装命令
  11. 因子分析怎么计算权重?
  12. Java 9 Module的特性以及解决的问题
  13. HighNewTech:Gartner发布2023年十大战略技术趋势《Gartner Top 10 Strategic Technology Trends for 2023》翻译与解读
  14. Vue-html5-editor 编辑器的使用及一些问题解决
  15. TCP 三次握手 四次挥手 tcpdump Flags
  16. QT qq登陆界面设计
  17. 2022年茶艺师(初级)考试题库及茶艺师(初级)作业考试题库
  18. R语言reshape2包-官方文档学习
  19. win10右键打不开显示设置和个性化的解决教程
  20. 人脸识别技术发展及实用方案设计

热门文章

  1. 【BZOJ 4516】生成魔咒
  2. -webkit-text-size-adjust
  3. winform根据字符串生成HTML静态页
  4. 【NAACL2021】初探无监督的多跳问答对
  5. 【python】Tkinter窗口可视化(二)
  6. 乳腺癌检测_逻辑回归
  7. NLP学习—21.自注意力机制(Self-Attention)与Transformer详解
  8. 机器学习7-主成分分析
  9. Datawhale数据挖掘项目之task1
  10. 李飞飞力荐:阿里巴巴高可用数据库解决方案