我确实有一个需要 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/