kjo*_*kjo 6 bash perl zsh perlbrew
现在我真的很困惑perlbrew......
在perlbrew.pm我看到以下内容:
if ($shell =~ /\/zsh\d?$/) {
$shell_opt = "-d -f";
# <snip>
}
elsif ($shell =~ /\/bash$/) {
$shell_opt = "--noprofile --norc";
}
Run Code Online (Sandbox Code Playgroud)
AFAICT,对于这些设置$shell_opt,至少如果来自调用平均值zsh或者bash,perlbrew use ...将exec一个新的外壳,抑制用户的所有RC-类型的文件的采购.
我真的很难想象为什么有人想要裸机工作. 我在这里错过了什么? 是否perlbrew意味着通过shell与标准交互不同的使用模式?或者它只是不是为用户zsh或bash?
编辑:只是为了澄清,为了让我使用其中一个perl安装,perlbrew我必须运行类似的东西
% perlbrew use perl-5.16.3
Run Code Online (Sandbox Code Playgroud)
当一个人这样做时,上面显示的代码会运行,结果perlbrew exec是一个新的shell,没有rc文件.没有我常用的rc文件,我没有看到在shell的实例中工作的重点.
别介意我:我没有意识到生成的 shell 是交互式使用的。
在已获取 rc 文件的 shell 中运行的程序将被这些 rc 文件所做的任何事情所困扰。在病理情况下, .bashrc 可能会别名echo为rm -rf,导致随机删除一些不幸命名的文件和目录(并用垃圾错误填充控制台或日志文件)。perlbrew.pm需要通过 shell 运行一些命令,并且要小心确保它不会意外地破坏任何东西,因为某些 rc 文件中有一些奇怪的东西。
没有人类用户愿意在没有 rc 文件的情况下工作。然而,人类可以弥补他们的个人设置与正常情况的差异。perlbrew不能。