命令';哪个perl';仅在退出bash后显示

命令';哪个perl';仅在退出bash后显示,bash,shell,Bash,Shell,好的,我回来问另一个简单的问题 Unix风格:SunOS devsrv2 5.10通用_147148-26 i86pc i386 i86pc 在我的工作环境中,我登录到tsch shell。。。登录后,我输入“bash”,它会将我放入一个bash shell(我更喜欢) 因此,我不必总是键入“bash”,而是创建了一个.cshrc脚本,其中有一行: #.cshrc bash 在注销和重新登录之后,我直接进入一个bash shell 问题是。。。以前,当我登录并键入“bash”这两个步骤时,我可

好的,我回来问另一个简单的问题

Unix风格:SunOS devsrv2 5.10通用_147148-26 i86pc i386 i86pc

在我的工作环境中,我登录到tsch shell。。。登录后,我输入“bash”,它会将我放入一个bash shell(我更喜欢)

因此,我不必总是键入“bash”,而是创建了一个.cshrc脚本,其中有一行:

#.cshrc
bash
在注销和重新登录之后,我直接进入一个bash shell

问题是。。。以前,当我登录并键入“bash”这两个步骤时,我可以键入“which perl”,然后得到响应“/usr/bin/perl”

现在我什么也没拿回来。。。。直到我发出命令“退出”,然后出现“/usr/bin/per”文本

因此,总结一下:

  • 我登录
  • 我输入“bash”
  • 我键入“whichperl”
  • 我回来了“/usr/bin/per”
  • 当我添加.cshrc文件并登录时:

  • 让我直接进入bash
  • 我键入“whichperl”
  • 除了命令行,我什么都没有得到
  • 我输入“退出”
  • 我得到“/usr/bin/perl”
  • 当我在cshrc文件中手动输入bash vs时,我感觉这与系统设置STDOUT有关,但我不确定如何在脚本中导出它

    非常感谢您的帮助


    谢谢。

    您不想手动更改shell。。。有一些“幕后”的事情,你可能没有考虑到,需要加载之前,你进入外壳

    最好的方法是让root用户运行以下命令:

    usermod-s/usr/bin/bash userfoo#user:userfoo


    这将正确设置您的环境,为您节省大量的头痛和时间。

    不知道您在这里想要实现什么,但您可以更改登录shell。可能使用
    chsh
    。我正在尝试使用bash shell,而不必键入“bash”…哪个
    在您的系统上实现为Csh脚本?相应的Bash命令是
    type
    。如果您不能按照@devnull的建议更改shell或让管理员为您更改shell,那么您可能希望您的
    .cshrc
    改为说
    exec/bin/Bash
    。。。这将把当前运行的
    [t]csh
    替换为
    bash
    ,而不是将
    bash
    作为一个子进程运行,因为它会被输入缓冲等弄糊涂……您通常可以自己使用
    chsh
    ,无需管理员。