在评论中,您已经表明您在 Ubuntu 上,这是/bin/csh指向 的符号链接/etc/alternatives/csh,这是指向/bin/csh.
cshshell起源于 BSD Unix,因此它csh是指向/bin/bsd-csh. 它可以追溯到 1978 年左右,在 Unix 程序报告自己的版本号变得普遍之前。
由于您使用的是 Ubuntu,因此:
dpkg -l csh
应该告诉您您拥有的版本——尽管 Debian/Ubuntu 软件包的版本号可能不会比您已经拥有的信息更有用。并且包版本号和shell版本之间的关系并不完全清楚。
我假设这是正确的包名称。如果没有,请尝试dpkg -S /bin/bsd-csh。
您可以判断您是否正在运行tcsh,如下所示:
if ($?tcsh) then
    echo This is tcsh
else
    echo This is csh, not tcsh
endif
tcsh应该与 csh 向后兼容,具有一些额外的功能,主要用于交互使用。如果为 tcsh 编写的脚本使用 tcsh 特定的功能,它很容易在 csh 下失败,但我希望 tcsh 能够处理 csh 脚本。正如tcsh(1)手册页所说:
  tcsh  是 Berkeley UNIX C shell csh(1)的增强但完全兼容的版本。
我知道您可能无法发布整个失败的脚本,但是您能否发布一个对您有用但对您的同事失败的小型代表性示例?
一种解决方案可能是请您的同事csh在他们的系统上安装 vanilla;如果他们愿意,他们仍然可以/bin/tcsh用作他们的交互式 shell,但是#!/bin/csh会导致脚本由旧的 csh 执行,而不是 tcsh。
最后,如果不添加指向this的链接,我将无法回答有关 [t]csh 脚本的问题。
附录:我可以访问一个/bin/csh不是 tcsh 的 Solaris 系统;如果你愿意,我可以在那里运行一些简单的测试。一个数据点:两者都/bin/tcsh接受/bin/csh为:空命令,但/bin/csh不接受参数:
% :
% arg
:: Too many arguments