我的问题是它很丑。
#!/bin/bash
packages=$(\
adb shell ps | \
grep -v root | \
grep -v system | \
grep -v "android.process." | \
grep -v radio | \
grep -v "com.google.process." | \
grep -v "com.lge." | \
grep -v shell | \
grep -v NAME | \
awk '{print $NF}' | \
tr '\r' ' ' )
function nuke(){
echo "Killing $p"
adb shell am force-stop "$1" &
adb shell am stopservice "$1" &
adb shell am kill "$1" &
adb shell pkill "$1" &
adb shell killall -9 "$1" &
}
function nuke-all(){
for p in $packages; do
nuke "$p"
done
}
nuke-all
Run Code Online (Sandbox Code Playgroud)
OP的命令也可以在单个命令中完成,您可以尝试以下操作吗,它是单个awk命令(未测试,因为没有给出示例,并且也直接转换了OP的多个grep命令)。
adb shell ps |
awk '
!/root|system|android\.process\.|radio|com\.google\.process\.|com\.lge\.|shell|NAME/{
gsub(/\r/,OFS)
print $NF
}'
Run Code Online (Sandbox Code Playgroud)