1 votos

mostrar la batería en el prompt y hacer que se actualice después de cada comando

Acabo de instalar Lion, y estoy en el proceso de ver mi sistema. Estoy usando esta función (encontrada en algún lugar en línea...) para mostrarlo en el prompt :

battery_status()
{
    maxcap=`ioreg -l | grep Capacity | awk '/MaxCapacity/{print $5}'`
    curcap=`ioreg -l | grep Capacity | awk '/CurrentCapacity/{print $5}'`

    curcap=`echo $curcap*1000|bc`
    proc=`echo $curcap / $maxcap |bc`;

    len=`echo ${#proc}`;

    proc_num=${proc:0:3}
    proc_dec=${proc:3:4}

    proc_num_len=`echo ${#proc_num}`;

    if [ $proc_num_len == "3" ]; then
            if [ $proc_num != "100" ]; then
                    proc_num=${proc:0:2}
                    proc_dec=${proc:2:3}
            fi
    fi

    echo $proc_num.$proc_dec%
}

Y genero mi aviso de esta manera:

_PS1user="\u@"
_PS1host="$txtred\h"
_PS1time="$txtwht | \t | "
_PS1battery="`battery_status`"
_PS1end="$txtrst\n\w › "

export PS1="$_PS1user$_PS1host$_PS1time$_PS1battery$_PS1end"

unset _PS1user _PS1host _PS1time _PS1battery _PS1end

Sin embargo, desde Lion, la Parte de la batería no se actualiza cada vez que aparece de nuevo el aviso. Por ejemplo, si hago un ls y esperar a que se agote la batería y luego hacer otro comando en la misma ventana, sin tener que re .bashrc La batería sigue siendo la misma. ¿alguien sabe cómo hacer que se actualice sin tener que recurrir a mi .bashrc ¿fichero con recursos cada vez?

(Por cierto, este es el aspecto que tiene mi indicador).

1voto

Epcylon Puntos 164

Tienes que escapar de ella, si quieres que se repita cada vez que se llame. Lo más fácil es hacerlo con el signo de dólar.

_PS1battery="\$(battery_status)"

1voto

Jasmine D Puntos 1

El anterior script está tan terriblemente escrito que me hace llorar. Teniendo en cuenta que lo ejecutas en cada prompt, puede que no quieras bifurcarte tanto.

Awk puede hacer todo lo anterior en una sola línea:

ioreg -l | awk '/MaxCapacity/ {max=$5} /CurrentCapacity/ {cur=$5} END {printf "%.1f%%", cur/max*100}'

(lo siento, no hay suficiente reputación para comentar o habría hecho eso en su lugar)

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X