【问题标题】:Zsh don't wait for promptZsh 不等待提示
【发布时间】:2014-10-16 14:33:56
【问题描述】:

我在 oh-my-zsh 主题中设置了一些提示,其中包括一些获取天气状态的“curl/wget”命令。但是每次我启动 shell 时,都会提示等待 9-10 秒,然后才欢迎我。我想要做的是能够设置“动态”提示:当我启动 shell 时,会暂时显示没有天气的默认提示,然后在“后台”中获取天气并将其添加到提示中(例如,当某些命令是执行并显示另一个提示)。我该怎么做?

更新:我决定使用 cron 作业,它只会每 5 分钟获取一次天气,然后我可以 cat 它不仅可以发送到 zsh 提示符,还可以发送到我想要的任何系统部分(例如,发送到 WM 状态栏)。虽然对于正在寻找我确切问题的答案的人,我建议尝试像 James Andrews 提出的那样。

【问题讨论】:

    标签: bash delay prompt weather


    【解决方案1】:

    在您的.zshrc 文件中您可以设置

    # How long to wait before calling TRAPALRM()
    TMOUT=300
    
    # called when TMOUT reaches 0
    TRAPALRM()
    {
        # run this command in the background so my shell resets
        {
            export WEATHER=$(...)
        }&!
    }
    

    您的提示可以使用$WEATHER 变量。

    【讨论】:

      【解决方案2】:

      几个想法:

      1. 使用 curl --max-time 选项来限制损坏。
      2. 有一个每 5 分钟左右运行一次的 cron 作业,获取天气并将其写入文件,您的提示可以读取该文件。

      【讨论】:

      • 哇,我真的很愚蠢,没有早点想到它! (cron作业)这实际上与主题主题无关,但这是完美的解决方案。我可以将 cron 设置为每 5 分钟将天气获取到 /tmp/somefile 中,然后不仅将其添加到 zsh 提示符,还可以将其添加到我的 WM 状态栏和系统中的任何其他内容中。太好了!
      猜你喜欢
      • 2010-12-17
      • 2018-09-28
      • 2019-12-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-26
      • 1970-01-01
      • 2012-08-02
      相关资源
      最近更新 更多