所以我有一些与昂贵软件相关的 tcsh 脚本,我必须在 bash shell 系统上运行它们。这可能吗?该软件经常需要这些脚本,并且基于 tcsh。是否可以同时运行 2 个 shell?或者只是在脚本开头调用 tcsh shell?或者是否有任何编译器来翻译 shell 脚本?我有哪些选择?谢谢。
最佳答案
简单地输入一个适当的shebang在脚本的顶部。
假设你的 tcsh
安装为 /bin/tcsh
,每个 tcsh 脚本的第一行应该是这样的:
#!/bin/tcsh -f
(-f
告诉 shell 不要加载您的启动脚本,例如 .login
或 .tcshrc
。任何脚本都不应该取决于您的用户环境,因此您不需要调用启动脚本——这将使您的脚本加载得更快。请注意,-f
对于 Bourne 派生的 shell 具有不同的含义;使用-f
仅适用于 csh 和 tcsh 脚本。)
如果您不能轻而易举地假设 tcsh
的安装位置,另一种方法是:
#!/usr/bin/env tcsh
但这不允许您使用 -f
选项,而且它可能还有其他缺点;见this answer了解详情。
请注意,实际上并没有“bash shell 系统”这样的东西。 bash 和 tcsh 都只是您可以运行的程序。一个或另一个可能恰好是新创建的用户帐户的默认交互式 shell,但这并不影响能够运行它们中的任何一个。
关于linux - 如何从 bash shell 系统运行 tcsh 脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39645842/