私はシェルとして 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
て再ロードします。