2012-01-15 9 views
1

の私の.zshrcは、私は、このbashスクリプト(テスト)を考えてみましょう私のターミナルウィンドウ(zsh)から 'bash test'を実行すると、autoloadとcompinitコマンドが見つからないというエラーが表示されます。私がsource〜/ .zshrcをコマンドラインから実行するだけでうまくいきます。ソースはbashスクリプト

このblogのような私の開発環境をセットアップしようとしていますが、スクリプトが.zshrcファイルを試してみると失敗します。

洞察力があれば幸いです。

+0

は、なぜあなたはzshのスクリプトをやっていないですか? – Mat

+0

まあ、私の混乱の状態は、ブログの記事から始まり、彼らはzshシェルで実行されているように見えるbashスクリプトを持っていると思います....私はここに提案を試してみます... – Emjay

+0

私はドン 'あなたの.zshrcを 'source'することについては、ブログの記事の中の何かを参照してください。 –

答えて

7

bashを使用してzshスクリプトを実行しています。 pythonインタプリタに、perlの解析を依頼することもできます。

シバンラインでbashからzshに変更するか、bashコマンドでスクリプトを書きます。

2

これは、pythonとperlの違いはあまりありません。 bashとzshの両方は、Bourneシェル(POSIXで動作が標準化されています)から派生しているため、/bin/shで動作するように設計されたスクリプトは、bashまたはzshで動作する可能性があります。

通常、~/.zshrcは、名前が示すとおり、zshで使用するように設計されており、通常はautoloadおよびcompinitなどのzsh固有のコマンドが含まれます。

あなた例えば、これらのコマンドを条件付きにすることができ

if [ "$ZSH_VERSION" ] ; then autoload -U compinit compinit fi 

しかし、あなたはそれらをエミュレートする方法を見つけ出すことができない限り、あなたは、これらのコマンドの機能を使用できないことを意味当然の

bash。 (私は、コマンドのいずれかに精通していないので、私はそこにあなたを助けることはできません。)

(あなたはbashシェルでset -uまたはset -o nounsetをやった場合、これは失敗することに注意してください。)

しかし、もしあなたはzshとbashの両方を使用するつもりですが、別のファイル~/.bashrc~/.zshrcを別々にして、それぞれのファイルを設計したシェルでのみ使用する方がはるかに意味があります。重複を避けたい場合は、それぞれが共通のコマンドを含む3番目のファイルをソースすることができます。あなたはzshのプロファイルを必要とする場合

(とコメントをもとに、それはあなたが最初の場所で間違ったことをやっている可能性があります。)

+0

私は、私が使っていた歩みをあきらめて、自分のラップトップをセットアップするための自分のbashスクリプトを作成しました。私の最初のスクリプトをベースにしていたコードは、とにかく私にとって不幸です。入力いただきありがとうございます。 – Emjay