【问题标题】:How to Run a Shell Command in a zsh-theme?如何在 zsh 主题中运行 Shell 命令?
【发布时间】:2021-02-12 12:11:24
【问题描述】:

所以,我已经启动并运行了 Oh My Zsh,并且我正在创建自己的新 zsh 主题。在其中,我希望从 https://api.myip.com 获取外部 IP 地址 - 我正在使用 curl 和 grep 来获取它。当我在命令提示符下输入它时工作正常,但是当嵌入到我的 zsh-theme 文件中时它给了我一个错误:

zsh: no matches found: ((1?[0-9][0-9]?|2[0-4][0-9]|25[0-5]).){3}(1?[0-9][0-9]?|2[0-4][0-9]|25[0-5])
(23) Failed writing body

Jacobs-MacBook-Pro-2.local jacobjackson ttys002 0 [                               ] 10/29/20 18:32:46 PM

这是我的 zsh 主题:

PROMPT='%F{white}%M %n %y %j $(curl -s https://api.myip.com | grep -oE '((1?[0-9][0-9]?|2[0-4][0-9]|25[0-5])\.){3}(1?[0-9][0-9]?|2[0-4][0-9]|25[0-5])') %F{green}%2c%F{blue} [%f '
RPROMPT='$(git_prompt_info) %F{blue}] %F{green}%W %* %F{yellow}%D{%p}%f'

ZSH_THEME_GIT_PROMPT_PREFIX="%F{yellow}"
ZSH_THEME_GIT_PROMPT_SUFFIX="%f"
ZSH_THEME_GIT_PROMPT_DIRTY=" %F{red}*%f"
ZSH_THEME_GIT_PROMPT_CLEAN=""

这是获取 IP 地址的命令序列:

curl -s https://api.myip.com | grep -oE '((1?[0-9][0-9]?|2[0-4][0-9]|25[0-5])\.){3}(1?[0-9][0-9]?|2[0-4][0-9]|25[0-5])'

【问题讨论】:

    标签: zsh oh-my-zsh


    【解决方案1】:

    试试这个:

    # Function name that's compatible with
    # http://zsh.sourceforge.net/Doc/Release/User-Contributions.html#Prompt-Themes
    # in case you ever want to build a full prompt theme.
    # `-s` to prevent `curl` from outputting a progress bar.
    # Use a service that simply outputs our IP, so we don't have to parse anything.
    prompt_jacobjackson_precmd() { 
      psvar[1]=$(curl -s ifconfig.co) 
    }
    
    # `precmd` hooks get executed just before each new prompt.
    autoload -Uz add-zsh-hook 
    add-zsh-hook precmd prompt_jacobjackson_precmd
    
    # `%1v` inserts the 1st element of the `psvar` array. See
    # http://zsh.sourceforge.net/Doc/Release/Prompt-Expansion.html#Conditional-Substrings-in-Prompts
    PS1='%1v > '
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-08-30
      • 1970-01-01
      • 2018-01-08
      • 2017-10-17
      • 2018-08-22
      • 2014-08-24
      • 2012-03-12
      • 1970-01-01
      相关资源
      最近更新 更多