3 votos

¿Alias a fuente .bashrc después de que ha sido editado?

Me gustaría añadir un alias (por conveniencia) que me permita editar mi bashrc, y si se han realizado cambios, fuente, pero si no se realizan cambios, no de origen (en el caso de que he cambiado mi mente).

Inicialmente probé alias vb='vi ~/.bashrc && source ~/.bashrc' , pero luego me di cuenta de que incluso acaba de dejar fuera de vi :q o :q! probablemente todavía devuelve un éxito el valor de retorno que es la razón por la que todavía fuentes.

¿Hay alguna forma de hacer un alias que dejar de vi sin realizar cambios en el archivo, no de origen .bashrc pero si algo ha cambiado, no?

7voto

Comar Puntos 186

Qué pasa:

 alias vb='SUM1=$(md5sum ~/.bashrc) && vi ~/.bashrc && SUM2=$(md5sum ~/.bashrc) && if [ "$SUM1" != "$SUM2" ] ; then source ~/.bashrc ; fi' 

4voto

Caqe Puntos 53

¿Qué hay de usar una función bash en lugar de un alias? Esto funciona en mis pruebas:

  • Agregue la siguiente función a ~ / .bashrc
  • fuente ~ / .bashrc
  • cuando desee cambiar ~ / .bashrc escriba bashmod en el indicador

     function bashmod () {
    
            pre=$(shasum ~/.bashrc);
            vim mybuf;
            post=$(shasum ~/.bashrc);
    
            if [ "$pre" = "$post" ]; then
                    echo "~/.bashrc unchanged";
            else
                    . ~/.bashrc;
            fi
    }
     

1voto

Jason Z Puntos 111

La misma idea que las otras respuestas, pero comparando los archivos directamente en lugar de desviarse mediante sumas de comprobación:

 vb() {
    local old="$(<~/.bashrc)"
    vim ~/.bashrc
    if ! cmp -s ~/.bashrc <<< "$old"; then
        source ~/.bashrc
    fi
}
 

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X