tomatoaiu の Tech Blog

プログラミングやツールについてのまとめブログ

.zshrcに `source ~/.zshrc` と書いて terminal で zshが動かなくなった方へ

ある日

とある日、zshを利用ていた時に起こった問題をここに記す。

問題

.zshrcsource ~/.zshrcって書いたらどうなると思う?

答え

terminalでshellを動かせなくなるよ!

もうちょっと細かく言うと、zshがログインシェルになっているterminalが使えなくなるよ!

なんでそんなこと知ってるって?

やらかしたから。

Broken Pipe

iTterm2 を開いたらこんな文字が出てきたんだぁ。理解できないよね。これが表示された時、頭が真っ白になった。いつも普通だったshellに訳のわからない文字が出てきたんだもの。

それで何を入力しても以下のように、

Broken Pipe

これがでるんだぁ。本当にどうしたら良いのか分からない。pipeが壊れていってどういうことなの??

原因

それで原因をあさってみました。調べることしばらく、ようやく原因が判明!!!

なんと、パスの設定を`.zshrc に書いたつもりだった。
けれども全然違った!

source ~/.zshrc

上記のコマンドで打つはずの内容が .zshrcのファイル内に存在していた! これは可笑しくなりそう。壊れるのも分かる。

原因を発見するまでの流れ

Iterm2を開く

Broken Pipe

なんだこれは!

ググる

特に見つからず、iterm2をいじってたら新しい問題を引き起こす。

諦め感で Mac純正の terminal を開く

純正terminalは う・ご・く

試しに ~/.zshrcterminal で開く

source ~/.zshrc.zshrc 内にいた!

まとめ

terminalのログインシェルは、何か特定のシェルで統一しないほうがいいよ!
terminal様とbash様 万歳!

追伸

もともとタイトルを「.zshrcにsource ~/.zshrcって書いたらどうなると思う?」だけにしていたんだけど、ふと考えてみたら最近は無限ループで補導があるので、答えもタイトルに追記しておきました。怖い怖い。この記事のタイトルは思う?って聞いてるだけだからへーきなはず・・・。