从配置文件中的函数(zshrc 中的函数)运行 nano 不会保存更改

从配置文件中的函数(zshrc 中的函数)运行 nano 不会保存更改

我使用 zsh 作为我的 shell,并尝试实现这一点:

在我的 .zshrc 文件中,我想要一个修改我的 .zshrc、保存并重新加载它的函数。

到目前为止,我有以下功能(在我的 .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
} 

每当我调用 zshrd 时,它都会工作。但每当我调用 zshed 时,它就不会工作。它会在 nano 中打开文件,但不会保存对文件所做的任何更改,也不会提交任何内容。也许这与 stdin/stdout 有关?

你知道为什么吗?如果我以“错误的方式”做事,我愿意接受其他解决方案。

谢谢!

答案1

如果我理解错了,请纠正我,但您$HOME/.zshrc使用打开nano,添加一些更改并保存。然后您尝试添加并提交,$HOME/config/但此目录中没有进行任何更改,因此没有进行任何提交。然后您调用zshrd并覆盖以前的更改,$HOME/.zshrc$HOME/config/.zshrc从未更改过。

我认为你应该调用nano $HOME/config/.zshrc你的脚本。

然后你的函数将改变$HOME/config/.zshrc,提交其更改,然后$HOME/.zshrc用你的新函数覆盖你的$HOME/config/.zshrc并重新加载它。

相关内容