在tcsh shell脚本中从bash获取最后一个命令行条目

时间:2015-07-07 18:38:46

标签: linux bash shell scripting tcsh

tcsh中是否有命令来获取输入shell的最后一个命令?

问题是最后一个命令是" tcsh"当我将shell从bash切换到tcsh时,从bash shell。我需要某种类型的shell间通信才能做到这一点吗?我可以尝试阅读我的bash历史中的最后一行,这会起作用......我想......也许有时候?

问题在于:

我想制作我的默认shell bash。目前是tcsh。我没有管理员权限,但我可以修改我的rc文件。现在我通过放置" bash"来解决问题。或者" exec bash"来自我的.tcshrc文件。然而,这显然阻止我使用tcsh,因为如果我尝试它运行rc文件并切换回bash。

这是我的想法:

在我的.cshrc文件中写一个if语句,如果最后一个命令是" tcsh"则跳过bash命令。

看起来应该是这样的:

if ( STATEMENT HERE ) then
    bash 
endif

在哪里"声明在这里"当输入shell的最后一个命令是" tcsh"。

时,应该为false

1 个答案:

答案 0 :(得分:0)

如果您真的无法更改登录shell,请尝试以下操作:

exec bash -l
在〜/ .login而不是.cshrc或.tcshrc中,以便你的tcsh登录shell立即被bash登录shell替换。

如果主要目标是让您的登录会话以bash开始,那么解决〜/ .bash_history或〜/ .history内容似乎很尴尬。