これは要求時にSSHキーを追加する必要性から始まりましたが、ssh-agend
OpenSSHはそれを行うことができないため、このzshスクリプトを思いつきました。ただし、不明な理由でssh
"before" または before を実行する代わりに、git
以前に実行されます。何もない、空のコマンドも可能です。
git ssh () {
# Does the agent handle any keys?
ssh-add -l &>/dev/null
# True if last executed command (ssh-add -l) exits non-zero.
if [ $? -ne 0 ]; then
ssh-add
fi
# Execute git or ssh with all parameters, and not this function
command $0 "$@"
}
orを入力したときにのみ実行されるのではなく、すべてのコマンドの後にこの関数が実行されるのはなぜですかgit
?ssh
ベストアンサー1
機能を試してみましたがzsh -f
(公開する前に完了しなければなりませんでしたが…)、期待どおりに機能することがわかりました。他の問題によってこの問題が発生したため、可能であれば質問を閉じます。
編集する:
問題が何であるか、解決策が気になる方は下記をご覧ください。
zshフレームワークを使用していますジムvcs_info
現在のディレクトリがgitで使用されていることを確認するために使用されます。これを行うにはgitを呼び出す必要があります。vcs_info
デフォルトではgitを直接呼び出さないようです。
しかし、Freenodeの#zshのftのおかげで
zstyle ':vcs_info:git:*:-all-' command =git
フレームワークを取得した後、~/.zshrc
この問題は解決されました。