Estoy usando zsh como mi shell y estoy tratando de lograr esto:
En mi archivo .zshrc quiero tener una función que modifique mi .zshrc, lo guarde y lo vuelva a cargar.
Hasta ahora tengo funciones (en mi archivo .zshrc):
function zshrd(){
cp $HOME/config/.zshrc $HOME/
source $HOME/.zshrc
}
function zshed(){
message=${1:-Automated message}
nano $HOME/.zshrc
git add $HOME/config/
git commit -m $message
zshrd
}
Siempre que llamo a zshrd funciona. Pero cada vez que llamo a zshed, no es así. Abre el archivo en nano, pero no guarda ningún cambio realizado en el archivo y no confirma nada. ¿Quizás tenga algo que ver con stdin/stdout?
¿Tienes alguna idea de por qué? Estoy abierto a otras soluciones si estoy haciendo las cosas "mal".
¡Gracias!
Respuesta1
Corrígeme si no te entiendo bien pero abres $HOME/.zshrc
con nano
, agregas algunos cambios y guardas. Luego intenta agregar y confirmar, $HOME/config/
pero no se realizan cambios en este directorio, por lo que no se realiza ninguna confirmación. Luego llama zshrd
y anula el cambio anterior $HOME/.zshrc
con $HOME/config/.zshrc
el que nunca cambió.
Creo que deberías llamar nano $HOME/config/.zshrc
a tu guión.
Luego, su función cambiaría el archivo $HOME/config/.zshrc
, confirmaría sus cambios y luego lo anularía $HOME/.zshrc
con su nuevo $HOME/config/.zshrc
y lo recargaría.