首页 > 代码库 > Shell 脚本在开发中的体验

Shell 脚本在开发中的体验

Shell 脚本在开发中的体验


这段时间在开发一个程序,程序输出有很多日志。有时候要通过日志来分析出错的问题。单独的查看效率太低分析不到什么。于是乎就想到了Shell。 日志文件在安卓的手机里面!

开发环境 Fedora 、MacOS。

手机Nexus4,Nexus5。

开发工具 vim + arm-gcc。


情形1

需要将一些Bin程序添加到手机里面,但是一个一个的添加太麻烦于是:


#!/bin/sh
for i in $(seq 50 50 500);
do
adb push "stream_"$i /data/local/tmp
done;


这段代码 就能处理一批 以stream_开头的数据文件,将他们添加到手机里面


情形2 

通过adb将手机的BIN程序启动。我这边因为socket端口的问题,需要将BIN程序,完全退出后,才能正常启动。

每次都是adb shell;ps;kill 之类的操作。不过用脚本操作后 就很方便了。

#!/bin/sh
a=`adb shell "ps | grep stream"`
echo $a
pid=`echo $a | cut -d " " -f 2`
echo $pid
adb shell "kill ${pid}"
adb push stream_3 /data/local/tmp
adb shell /data/local/tmp/stream_3



脚本会自动去处理,如果检测到程序还在运行就kill点,然后再启动


情形3

分析日志。 日志文件在手机的SD卡中。

程序在运行中,我需要检测运行的状况。

#!/bin/sh
while true;
do
adb pull /sdcard/log .
tail -n 10 log
done


脚本会将手机SD卡的文件,取出到一个目录里,然后输出最后10行。


情形4

  监控手机SD卡里的某一文件

#!/bin/sh
while true;
do
adb shell "df | grep emulated"
adb shell "ls /sdcard/ -l | grep stream.mp4"
adb shell "ls /sdcard/ -l | grep log"
sleep 1;
done;



Shell 脚本在开发中的体验