![将函数传递给 nohup 以保持命令运行](https://linux22.com/image/148088/%E5%B0%86%E5%87%BD%E6%95%B0%E4%BC%A0%E9%80%92%E7%BB%99%20nohup%20%E4%BB%A5%E4%BF%9D%E6%8C%81%E5%91%BD%E4%BB%A4%E8%BF%90%E8%A1%8C.png)
我设置了以下函数,它查看给定目录并使用 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
命令中,以便我可以将其设置为运行并离开?