6

今、私は本当に混乱していperlbrewます...

perlbrew.pmのように表示されます。

    if ($shell =~ /\/zsh\d?$/) {
        $shell_opt = "-d -f";
        # <snip>
    }
    elsif  ($shell =~ /\/bash$/)  {
       $shell_opt = "--noprofile --norc";
    }

AFAICT、これらの設定は$shell_opt、少なくともzshまたはから呼び出された場合bash、新しいシェルにperlbrew use ...なり、ユーザーのすべてのrcタイプのファイルのソースを抑制することを意味します。exec

なぜ誰もが裸のシェルで働きたいのか、想像するのに本当に苦労しています。 ここで何が欠けていますか? シェルを介した標準的な対話とはperlbrew異なる使用パターンを対象としていますか? それとも、 or のユーザー向けではないのでしょうzshbash?

編集:明確にするために、perlインストールされた のいずれかを使用するには、次のperlbrewようなものを実行する必要があります

% perlbrew use perl-5.16.3

そうすると、上記のコードが実行され、その結果、rc ファイルのないperlbrew exec新しいシェルになります。通常の rc ファイルがなければ、シェルのインスタンスで作業する意味がわかりません。

4

4 に答える 4

2

なぜそうなのかはわかりませんが、そのコードは通常実行されません。perlbrewbash からそのコードに到達するには、バイナリを明示的に実行する必要があります。ただし、useおよびswitch機能 (引用符で囲まれたコードを含むサブルーチンを呼び出す) は、通常、perlbrewシェル関数によって処理されます。

于 2013-04-21T22:30:23.257 に答える
1

編集

気にしないでください: スポーンされたシェルがインタラクティブに使用されていることに気づきませんでした。


rc ファイルをソースとするシェルで実行されているプログラムは、それらの rc ファイルが何を行ってもスタックします。病理学的なケースでは、.bashrc が にエイリアスechoされrm -rf、残念な名前のファイルやディレクトリがランダムに削除されることがあります (コンソールやログファイルがガベージ エラーでいっぱいになります)。perlbrew.pmシェルを介していくつかのコマンドを実行する必要があり、一部のrcファイルに奇妙なものが含まれているために誤って何かを核攻撃しないように注意しています.

人間のユーザーは、rc ファイルなしで作業したいとは思わないでしょう。ただし、人間は、自分の個人的な設定が標準とどのように異なるかを補うことができます。perlbrewできません。

于 2013-04-21T22:19:31.400 に答える