web-dev-qa-db-ja.com

.bashrcを.zshrcにエクスポートするにはどうすればよいですか?

Bashからzshに移行しようとしています。

.bashrcを.zshrcに直接配置しました。Bashを再度使用しようとすると、多くのエラーが発生しました。

。bashrcを.zshrcにエクスポートするにはどうすればよいですか?

Lhunathの答えは正しい方向に私を押したが、zshは.profile自動的に。このトピックに関する多くの良い情報は、 このスーパーユーザーの投稿 にあります。

私が使用している適応は、一般的なエイリアスと関数を.profileおよび次のように手動でそれらを調達します。

。bashrc

source ~/.profile

。zshrc

[[ -e ~/.profile ]] && emulate sh -c 'source ~/.profile'

72
Ryne Everett

_.bashrc_を_.zshrc_に「export」することはできません。 _.bashrc_は、bashコマンドを実行するファイルです。 _.zshrc_は、zshコマンドを実行するファイルです。

zshが_.bashrc_でbashコマンドを実行できると期待できないので、_.zshrc_を実行する代わりに、それを新しい_.bashrc_に変換する必要があります。 SOMECODE)__ from _.zshrc_または前者を後者にコピーします。

すべてのシェルに共通のシェル初期化ファイルが必要な場合; _.profile_を使用します(および_.bashrc_および_.zshrc_を削除します)。すべてのPOSIXシェルをソースとしています。そして、そこに、POSIXシェル機能onlyのみを使用します。その後、そのコードはPOSIXシェルで実行されます。 (ただし、zshがPOSIXに準拠していることは100%確信できません)。

http://mywiki.wooledge.org/DotFiles を参照してください。

とはいえ、私はあなたの質問のこの部分を最初に読み違えましたが、bashコマンドをそこに入れない限り、_.bashrc_を実行するときにzshからエラーが発生することはありません。しましたか?どのようなエラーが発生していますか? zshコードを_.bashrc_に追加したように聞こえますが、bash(明らかに)は理解できません。

余談ですが、ojblassは部分的にしか成功しない移植性のポイントを作成しようとします。 zshは素晴らしいシェルですが(自分自身に名誉はありませんでしたが)、スクリプトを書くときは。代わりに_#!/usr/bin/env bash_を使用することをお勧めします。移植性のために、主にあなた自身(そして最終的にはあなたが彼らと共有する人々)のためだけに。

25
lhunath