linux - 从 bash 执行 csh-script 并且不关闭 csh-shell,但保持 csh-prompt

标签 linux bash csh

我确实有一个需要 csh 的工具,但我的默认 shell 是 bash。 我想要/需要在 csh 中从 bash 执行或获取 csh 脚本,并且我想在脚本执行后以 csh 提示结束。

从 bash 我可以通过 csh 启动 csh 并获得 csh-prompt,然后我可以在 csh 中运行任何命令并保持 csh-prompt 直到我 退出

例如,我也可以通过 csh -c 'ls' 执行命令,但在命令执行后 csh 退出,我又回到 bash。

我想要这样的东西(作为例子)

[bash-prompt]# csh -c 'ls'
file1 file2 file3
[csh-prompt]# date
Tue Apr  2 15:33:35 CEST 2019
[csh-prompt]# exit
[bash-prompt]#

我找不到实现它的方法 - 是否可以执行脚本并以子 shell 提示结束?

最佳答案

只需使用 csh 结束您的脚本。

首先要注意的是您的脚本导出了子 shell 应该看到的所有变量/函数。

第二件事是注意非交互模式——您稍后可能决定要以非交互方式运行此脚本(即,只运行脚本,可能还有一些其他命令,然后退出)。你需要单独处理这种情况。我有无数用户将 sh 放在他们的 .profile 或其他东西的底部,然后想知道为什么我的工具使用 su 来执行具有已删除权限的命令(来自 root)被挂起。

关于linux - 从 bash 执行 csh-script 并且不关闭 csh-shell,但保持 csh-prompt,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55476242/

相关文章:

linux - 采购 .cshrc 后重复的环境路径

mysql - 从源代码构建 MySQL 服务器时,如何链接到自定义库?

java - 将 Tomcat 7 升级到 64 位 JVM

linux - 变量/参数扩展中的字符串项

linux bash脚本删除某些文本

bash - SQLite用新行导入字段

python - 无法从源代码安装 python 包

linux - QPushButton如何使用系统主题图标 -- Linux上的Qt Designer

arrays - 如何将数字数组从 bash 传递到 csh

linux - 解释脚本行