標籤:shell 體驗 日誌
Shell 指令碼在開發中的體驗
這段時間在開發一個程式,程式輸出有很多日誌。有時候要通過日誌來分析出錯的問題。單獨的查看效率太低分析不到什麼。於是乎就想到了Shell。 記錄檔在安卓的手機裡面!
開發環境 Fedora 、MacOS。
手機Nexus4,Nexus5。
開發工具 vim + arm-gcc。
情形1
需要將一些Bin程式添加到手機裡面,但是一個一個的添加太麻煩於是:
#!/bin/shfor i in $(seq 50 50 500);doadb push "stream_"$i /data/local/tmpdone;
這段代碼 就能處理一批 以stream_開頭的資料檔案,將他們添加到手機裡面
情形2
通過adb將手機的BIN程式啟動。我這邊因為socket連接埠的問題,需要將BIN程式,完全退出後,才能正常啟動。
每次都是adb shell;ps;kill 之類的操作。不過用指令碼操作後 就很方便了。
#!/bin/sha=`adb shell "ps | grep stream"`echo $apid=`echo $a | cut -d " " -f 2`echo $pidadb shell "kill ${pid}"adb push stream_3 /data/local/tmpadb shell /data/local/tmp/stream_3
指令碼會自動去處理,如果檢測到程式還在運行就kill點,然後再啟動
情形3
分析日誌。 記錄檔在手機的SD卡中。
程式在運行中,我需要檢測啟動並執行狀況。
#!/bin/shwhile true;doadb pull /sdcard/log .tail -n 10 logdone
指令碼會將手機SD卡的檔案,取出到一個目錄裡,然後輸出最後10行。
情形4
監控手機SD卡裡的某一檔案
#!/bin/shwhile true;doadb shell "df | grep emulated"adb shell "ls /sdcard/ -l | grep stream.mp4"adb shell "ls /sdcard/ -l | grep log"sleep 1;done;
Shell 指令碼在開發中的體驗