ループから特定のファイルを削除するシェルスクリプトを作成する方法

ループから特定のファイルを削除するシェルスクリプトを作成する方法

実際、私はアプリケーションで5秒ごとに継続的に生成される特定のファイル/フォルダを実行し、継続的に削除する必要があるシェルスクリプトを作成する予定です。

[下記のデータはダミーなので理解しやすく、一般的に他の人にも役立ちます。]

ターゲットアプリケーションパッケージ名- com.example.mypackage

ターゲットアプリケーション実行アクティビティ名- com.activity.launcher

ターゲットアプリから削除するファイル- /sdcard/Android/data/app/log1 , /sdcard/Android/data/app/log2

間隔を削除:5秒に1回

トリガーポイントの開始:シェルスクリプトを実行した後にのみ

終わり:除去ループ・プロセスは、ターゲット・アプリケーションが活動化されなくなった後に自動的に終了する必要があります(したがって、上記の活動名)。

答え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

関連情報