Aquí está mi nuevo tema de oh-my-zsh para zsh, actualizado con un carácter de escape antes de cada bloque de código dentro de $()'s que permite actualizar cada vez que se muestra el indicador (funciona con setopt prompt_subst
):
PROMPT="%F{yellow}%n%F{white}@%F{green}%M %F{cyan}%j %F{white}\$(curl -s https://api.myip.com | jq .ip -r) %F{green}%2c%F{cyan} [%f "
RPROMPT="\$(git_prompt_info) %F{cyan}] %F{red}\$(top -l 1 | grep 'Load Avg' | awk '{print $3, $4, $5}' | tr -d , | awk '{print $2}')[\$(sysctl hw.ncpu | grep -o -E '[1-9]+')] @ \$(top -l 1 | grep 'CPU usage:' | awk '{print $3, $5, $7}' | tr -d , | awk '{print $3,"%%"}') idle %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=""
Cambiará dinámicamente la fecha y la hora, la dirección IP, y la git_prompt_info, cada vez que presione enter, pero el scripting de shell como \$(top -l 1 | grep 'Load Avg' | awk '{print $3, $4, $5}' | tr -d , | awk '{print $2}')
no se actualiza cada vez que presiono "enter", en su lugar me da un error:
awk: error de sintaxis en la línea de origen 1
contexto es
{print >>> , <<<
awk: declaración ilegal en la línea de origen 1
awk: declaración ilegal en la línea de origen 1
¿Qué está pasando aquí?