我使用 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 中打開文件,但不保存對文件所做的任何更改,也不提交任何內容。也許它與標準輸入/標準輸出有關?
你知道為什麼嗎?如果我以「錯誤的方式」做事,我願意接受其他解決方案。
謝謝!
答案1
如果我不明白,請糾正我,但你可以$HOME/.zshrc
使用打開nano
,添加一些更改並保存。然後您嘗試新增並提交$HOME/config/
,但目錄中沒有進行任何更改,因此沒有進行提交。然後,您可以呼叫zshrd
並覆蓋之前從未更改$HOME/.zshrc
過的更改$HOME/config/.zshrc
。
我認為你應該調用nano $HOME/config/.zshrc
你的腳本。
然後你的函數將更改$HOME/config/.zshrc
,提交其更改,然後$HOME/.zshrc
用新的覆蓋你的$HOME/config/.zshrc
並重新加載它。