在bash、csh和zsh之间具有公共别名文件

在bash、csh和zsh之间具有公共别名文件,bash,zsh,csh,tcsh,Bash,Zsh,Csh,Tcsh,我在我的个人笔记本电脑上使用zsh,在工作中使用bash/tcsh,在学校使用tcsh。我在所有位置都安装了git,使之易于保持同步 我想知道是否可以为所有3个shell的别名使用一个公共文件,并从相应的rc文件调用一个脚本,将其转换为特定于shell的语法。我该怎么做呢?这可能不是一个好办法;我愿意接受建议。正如你所建议的,这是错误的方法。正确的方法是在所有系统上使用Bourne heritage shell,无论是zsh、ksh、bash、plain sh还是busybox。这样,所有别名都

我在我的个人笔记本电脑上使用zsh,在工作中使用bash/tcsh,在学校使用tcsh。我在所有位置都安装了git,使之易于保持同步


我想知道是否可以为所有3个shell的别名使用一个公共文件,并从相应的rc文件调用一个脚本,将其转换为特定于shell的语法。我该怎么做呢?这可能不是一个好办法;我愿意接受建议。

正如你所建议的,这是错误的方法。正确的方法是在所有系统上使用Bourne heritage shell,无论是zsh、ksh、bash、plain sh还是busybox。这样,所有别名都使用Bourne语法,您唯一担心的是别名是否受支持(archaic sh不支持),以及它们是否适用于您的shell(zsh的全局别名为
alias-g
,而其他shell没有)

在学校,你应该能够调用Bourne heritage shell,例如

 exec /bin/sh -l

在提示下或在您的
.cshrc
中。也许您的管理员甚至允许您选择梦想的外壳。

如果您的别名微不足道,那么问题也微不足道。如果你的化名不那么琐碎,那么很容易说“不可能”,如果没有你的Alise的样子,很难说任何有建设性的话。无论如何,为了保持理智,试着迁移出csh/tcsh。听起来像是维护的噩梦。另外,我也同意triplee的观点。看见你可能会觉得有趣。我完全同意所有关于Csh的观点;这就是我在comp上使用zsh的原因。然而,学校使用Csh,我无权改变这一点:(是什么力量阻止你在C shell中键入
exec/bin/sh-l
(或zsh、ksh或bash)?如果你不能修改你的登录shell,你甚至可以将它放在
.cshrc
中。还是说必须使用C shell(ugh)提交任务?@jens有一个很好的观点。没有什么能阻止你在登录后启动你选择的shell,除非不可用,而且这也可以通过在
~/bin
中保留本地副本来解决。请查看chsh,它通常是为用户选择登录shell而提供的,而不需要root用户。