gpt4 book ai didi

macos - Disown、nohup 或 & 在 Mac OS zsh 上……无法正常工作

转载 作者:行者123 更新时间:2023-12-05 02:24:20 39 4
gpt4 key购买 nike

嗨。我是 shell 的新手,正在编写我的第一个拼凑脚本。我已经阅读了整个 intertube 和 SO 并且有很多很多地方 disownnohup&return 得到了解释,但有些东西对我不起作用。

我想要一个更简单的计时器。该脚本要求用户输入小时、分钟等,然后:

echo "No problem, see you then…"
sleep $[a*3600+b*60+c]

在这一点上(第一行或第二行,不确定)我希望脚本或脚本中的特定命令成为后台进程。也许是守护进程?这样即使

  • 终端窗口已关闭
  • 终端应用完全退出
  • 计算机进入休眠状态(我意识到我可能还需要一些不同的代码来唤醒 mac 本身)
  • 同样在“没问题”行之后,我想要一个return 命令,以便现有的 shell 窗口在此期间仍然有用。

    终端通知程序命令(定时器唤醒)在上述某些用法下立即被调用(我现在不记得是哪个),然后在正确的时间发出第二个通知。在任何地方使用 return 命令基本上都会退出脚本。

    我不清楚的一件事是 disownnohup 等是否/如何适用于命令进程与脚本进程,即,将它们中的任何一个都只能在脚本内的命令上正常工作(如果不能,如何将脚本初始化为仍然要求输入的后台进程)。

    也许我应该使用一些替代 sleep 的方法?

    最佳答案

    无需使用单独的脚本或让脚本自行运行以使其一部分在后台运行。

    一个更简单的方法是将您想要作为背景的部分(sleep 和 following 命令)放在括号内,并在它们后面加上一个符号。

    所以脚本的结尾应该是这样的:

    (
    sleep $time
    # Do whatever
    )&

    这将导致该部分代码在置于后台的子 shell 中运行,因为之后没有代码,第一个 shell 将立即退出,将控制权返回给您的交互式 shell。

    关于macos - Disown、nohup 或 & 在 Mac OS zsh 上……无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13018041/

    39 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com