at命令可用于安排作业以供将来执行。
这会在执行命令之前设置环境,以匹配创建“at”作业时的环境。
但是,这似乎不包括环境中定义的 bash 函数。我尝试使用“export -f”导出函数,但这并未显示在为 at 作业创建的环境中。
有人知道我如何让函数在“at”作业的上下文中运行吗?我知道我可以转换为文件中定义的正确命令,但我很好奇究竟是什么阻止了该函数在环境中被拾取。
值得注意的是,如果在环境中执行“export -f myfun”,然后执行“export -p”,则该函数不会出现在环境中。这主要是 bash 的问题吗?
Bash 版本:GNU bash,版本 5.2.21(1)-release(x86_64-pc-linux-gnu)
script.sh
您运行的脚本(假设)at
将由守护进程运行atd
,并且不再与您当前的 shell 会话相关。解决方法: