将函数传递给 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命令中,以便我可以将其设置为运行并离开?

相关内容