如何创建 shell 脚本来删除循环中的特定文件

如何创建 shell 脚本来删除循环中的特定文件

实际上,我打算创建一个执行的 shell 脚本,该脚本应该每隔 5 秒连续删除由应用程序不断生成的特定文件/文件夹

[下面使用的数据是虚拟数据,因此它变得容易理解,并且通常也可能对其他人有帮助]

目标应用程序包名称- com.example.mypackage

目标应用程序启动活动名称- com.activity.launcher

目标App要删除的文件- /sdcard/Android/data/app/log1 , /sdcard/Android/data/app/log2

删除间隔:每 5 秒一次

开始触发点:只有在我执行shell脚本之后

终点:删除循环过程应在目标应用程序不再活动后自动结束(因此上面提到的活动名称)

答案1

这是我想出的一个简短的 bash 脚本。请注意,您需要将logger\.shgrep 语句替换为要监视的进程的名称。在本例中,它正在检查名为“logger.sh”的进程并获取 PID。

#!/bin/bash

pid=$(ps aux | grep "logger\.sh" | head -n 1 |  awk '{print $2}');

if [ "$pid" != "" ] 
    then
    pidFound=1;
    while [ "$pidFound" = 1 ]
    do
        rm /sdcard/Android/data/app/log1;
        rm /sdcard/Android/data/app/log2;
        sleep 5;
        pid=$(ps aux | grep "logger\.sh" | head -n 1 |  awk '{print $2}');
        if [ "$pid" != "" ]; then
            pidFound=1;
        else
            pidFound=0;
            break
        fi
    done
fi

相关内容