.bashrcに書いていた下記の部分を.zshrcにそのまま移した

だけでは動作しませんでした。

・このスクリプトの解説
・どうなおしたら.zshrcで動くか
・あれば、簡単なzsh/bashのスクリプトの入門資料

を教えてください。

よろしくお願いします。

#############################################################
# ssh-agent
# http://www.snowelm.com/~t/doc/tips/20030625.ja.html
echo -n "ssh-agent: "
source ~/.ssh-agent-info
ssh-add -l >&/dev/null
if [ $? == 2 ] ; then
echo -n "ssh-agent: restart...."
ssh-agent >~/.ssh-agent-info
source ~/.ssh-agent-info
fi
if ssh-add -l >&/dev/null ; then
echo "ssh-agent: Identity is already stored."
else
ssh-add
fi

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2007/03/04 11:10:02
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答1件)

id:Kumappus No.1

回答回数3784ベストアンサー獲得回数185

ポイント60pt

zshくわしくないけどとりあえず

if [ $? == 2 ] ; then

if [ $? = 2 ] ; then

または

if (( $? == 2 )) ; then

にしたら動きますね。

エラーとしては

zsh: = not found

が出てるのではないですか?

以下もとのbashスクリプトをそのまま解説

echo -n "ssh-agent: "    →ssh-agent: と表示
source ~/.ssh-agent-info → ~/.ssh-agent-infoを読み込んで評価
ssh-add -l >&/dev/null   → ssh-add -l を実行、表示は出さない
if [ $? == 2 ] ; then → 上のssh-add -lの実行結果が2だったら
echo -n "ssh-agent: restart...." → ssh-agent: restart...."と表示
ssh-agent >~/.ssh-agent-info → ssh-agentを実行し結果を~/.ssh-agent-infoに書き込む
source ~/.ssh-agent-info → 今、書き込んだssh-agent-infoを評価
fi → if文の処理はここまで
if ssh-add -l >&/dev/null ; then →もう一度 ssh-add -l を実行
echo "ssh-agent: Identity is already stored." →実行結果が1だったらメッセージ表示
else
ssh-add → そうでなければ ssh-add 実行
fi → if文の終わり
id:urekat

ばっちりです。

ありがとうございます。

エラーもそれです。

2007/02/25 15:51:39
  • id:Kumappus
    zshについては何度か挑戦してるんですが、それほどshellで生活してないしややこしくなったらスクリプト言語で書いちゃえばいいかもなーと思ってやってないんですよ。好きな人は絶賛しますけど…。
    あとなかなかいい参考URLとか入門記事がないんですよね。強力なcd命令とかコマンド補完機能とかについてはやったら解説多いんですけど、今回の件についても最適な文法解説の箇所を見つけられませんでした。
  • id:urekat
    わたしもそうです。スクリプトでやります。

    psh=PerlShell
    とか
    rsh=RubyShell
    とかにしちゃえばいいのに。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません