zshrc中的long(ish)运行任务

时间:2015-03-18 16:49:18

标签: shell vagrant boot2docker parallels zshrc

tldr

我想在zshrc中运行一个需要一段时间才能运行的导出命令。我不需要立即使用env变量,但希望立即提供我的命令提示符。有没有办法在后台启动此命令?

背景

我通过boot2docker在osx上使用docker。我希望能够有一个可用的env变量(DOCKER_HOST),所以试着在zshrc中设置它。

我需要运行的命令,以便找出DOCKER_HOST的正确值可能需要几秒钟才能运行:

cd /boot2docker && export DOCKER_HOST="tcp://`vagrant ssh-config | sed -n "s/[ ]*HostName[ ]*//gp"`:2375"

(该命令直接来自https://github.com/Parallels/boot2docker-vagrant-box

基本上该命令执行以下操作:

  1. 进入/boot2docker目录
  2. 运行vagrant ssh-config并获取主机名
  3. 导出DOCKER_HOST =“$ HOST_NAME:2375”
  4. 但是第2步可能需要一些时间。所以将此命令按原样放入我的~/.zshrc.local文件会导致新的终端窗口占用太长时间以显示提示(5-10秒!)。

    我想知道是否有人知道在后台运行此方法。我很好,env变量在前5-10秒没有可用,但我希望我的提示出现并立即可用!

0 个答案:

没有答案