在平時工作的過程中,很多重復性內容可以通過運行腳本文件來代替。一次編寫,就能帶來很大的效率提升。
今天跟大家分享一個簡單的 Shell 腳本,只有區區 20 行左右的代碼。
因為有時候我們測試某個應用程序需要先保證測試環境的干凈,所以會手動卸載所有不必要的 App。而這個腳本的功能就是在知道包名的前提下,通過循環執行 adb uninstall 命令一次性卸載完指定的應用程序。
腳本的編寫思路是這樣的:
1、先將需要卸載的應用的包名(Package_Name)寫入到一個 all_list 文件中;
2、通過 adb shell pm list packages -3 命令取出測試機中已安裝的所有第三方應用的包名並將其輸出到 list 文件;
3、通過 for line in list 語句遍歷 list 文件,取出每行字符串並截取出包名;
4、將截取出的包名和 all_list 文件中的內容進行對比,如果有相同或者包含的關系,則通過 adb uninstall 命令進行卸載;
5、被卸載的應用包名將輸出在終端。
以下為編寫好的腳本:
#!/bin/bash
# 第三方應用包名輸出到list文件
adb shell pm list packages -3 > list.txt
# 等待3秒
sleep 3s
# 遍歷手機里的第三方app的包名
for line in $(cat list.txt); do
# 將packagename截取出來
name=${line:8}
# 遍歷要卸載的包名
for line2 in $(cat all_list.txt); do
# 判斷是否包含
if [[ $name =~ $line2 ]]; then
# 刪除包名結尾的\r
package_name=$(echo $name | tr '\r' ' ')
# 執行adb卸載命令
adb uninstall $package_name
# 打印已卸載的包名
echo $package_name"已卸載"
fi
done
done
運行示例:
-> sh +x uninstall.sh
Success
com.tencent.qqpimsecure已卸載
歡迎關注微信公眾號“測試開發Stack”,更多原創文章第一時間發布!