我使用 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
并重新加载它。