コマンドの実行を維持するには、nohupに関数を渡します。

コマンドの実行を維持するには、nohupに関数を渡します。

与えられたディレクトリを調べ、qpressを使ってすべてのファイルを解凍する次の関数を設定しました。また、プロセスの実行に要した時間も記録します。

fc_decompress () {
    startTime="$(date +%s)";
    find "$1/" -type f -iname '*.qp' -exec sh -c 'for f in "$@"; do /usr/bin/qpress -d "$f" "$(dirname "$f")" && rm "$f"; done' find-sh {} +
    endTime="$(date +%s)";
    runTime=$(( ${endTime}-${startTime} ));
    echo "Total Run Time: ${runTime}";
}

関数を実行すると:

fc_decompress "${testDir}"

良い結果。しかし、場合によってはこのプロセスに時間がかかる可能性があるため、次のように実行しようとしました。

nohup sh -c 'fc_decompress "${testDir}"' &

ただし、これは機能しなくなり、エラーが発生します。

sh: fc_decompress: command not found

nohup実行して終了するようにコマンドに関数を渡すにはどうすればよいですか?

ベストアンサー1

おすすめ記事