shell – 如何确定我的csh版本?
我有一些适合我的代码,但是当我把它交给一些同事时,它就破了.他们正在使用tcsh,而据我所知,我正在使用csh.
我试过了: csh -v csh --version csh -V csh --help csh -h 没有成功(他们都只是带我直接到翻译提示).我也为字符串“version”找到了man页面,但我也没有想出任何有用的东西.有没有办法确定我安装的csh版本? – 编辑 – 在/ bin / csh的符号链接之后,它们似乎终止于/ bin / bsd-csh,这似乎意味着我正在使用一些BSD风味的csh shell,如果它可以帮助任何人.另外,我正在使用ubuntu linux. 解决方法
在评论中,您已表明您使用的是Ubuntu,并且/ bin / csh是/ etc / alternatives / csh的符号链接,这是/ bin / csh的符号链接.
The 既然你在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的功能,为ccsh编写的脚本很容易在csh下失败,但我希望tcsh能够处理csh脚本.正如tcsh(1)手册页所说:
我知道您可能无法发布整个失败的脚本,但是您是否可以发布一个适合您的小代表示例并且对您的同事失败? 一个解决方案可能是要求同事在他们的系统上安装vanilla csh;他们仍然可以使用/ bin / tcsh作为他们的交互式shell,但是#!/ bin / csh会导致脚本由旧的csh执行,而不是tcsh. 最后,如果不添加指向this的链接,我无法回答有关[t] csh脚本的问题. 附录:我可以使用不是tcsh的/ bin / csh访问Solaris系统;如果你愿意,我可以在那里进行一些简单的测试.一个数据点:/ bin / tcsh和/ bin / csh都接受:作为null命令,但是使用/ bin / csh它不接受参数: % : % arg :: Too many arguments (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |