从 bash 帐户在 RHEL 7 中运行 cshrc 脚本不起作用

从 bash 帐户在 RHEL 7 中运行 cshrc 脚本不起作用

我得到了一个基于cshrc.这样,用户应该获取一个setup.cshrc文件,并在其中获取许多其他 .cshrc 脚本来设置环境来编译和运行一堆旧的 Fortran 编写的程序。

我正在运行 RHEL 7.9 x86-64,作者告诉我创建一个用户帐户,或者更改我的用户帐户,以便/usr/bin/csh正确运行所有内容。 这真的有必要吗?

当我从 bash shell 运行这些 csh 安装文件时,我所有的尝试都失败了。但是,如果我/etc/passwd确实在 linux 中创建了一个本地用户帐户,那么/usr/bin/csh/usr/bin/bash我运行它们时,提供给我的所有 csh 脚本都会起作用。但我更喜欢我所有的 linux 帐户(包括我的)都是bash.有没有办法保留我的帐户bash但运行这些csh脚本?

答案1

  • 您将能够从csh或运行安装文件tcsh,通常不能从bash(这实际上取决于脚本的内容csh)。

  • 作为(shell)脚本的规则,如果文件在其第一行setup.cshrc正确配备了 shebang#!/bin/csh#!/bin/tcsh(或其变体),那么您需要该解释器存在,因为将调用相应的 shell 环境来获取要正确执行的脚本。

如果输出chsh -l 包括 /bin/csh,或者/bin/tcsh,尝试:

$ /bin/csh setup.cshrc         # replace csh by tcsh if needed

如果输出chsh -l 不包括 /bin/csh,或,在您的系统上/bin/tcsh安装:tcsh

$ sudo yum install tcsh
$ cat /etc/shells       # < check that output includes /bin/tcsh 

然后您可以像上面一样从 shell 运行:

$ tcsh setup.cshrc

或者暂时将当前帐户的默认登录 shell 更改为tcsh

$ chsh -s tcsh

并从那里执行您的设置。

相关内容