Zsh不要等待提示

时间:2014-10-16 14:33:56

标签: bash delay prompt weather

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

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

2 个答案:

答案 0 :(得分: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变量。

答案 1 :(得分:0)

一些想法:

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