設定ファイル内の関数(zshrc内の関数)からnanoを実行しても変更が保存されない

設定ファイル内の関数(zshrc内の関数)からnanoを実行しても変更が保存されない

私はシェルとして zsh を使用しており、次のことを実現しようとしています:

.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て再ロードします。

関連情報