我怎么知道我的shell是什么类型的
发布时间:2020-12-15 18:55:11 所属栏目:安全 来源:网络整理
导读:我怎么知道我的shell是什么类型的?即是传统的sh,bash,ksh,csh,zsh等. 请注意,检查$SHELL或$0将不起作用,因为$SHELL不是由所有shell设置的,因此如果您在一个shell中启动,然后再启动另一个shell,那么您仍然可以使用旧的SHELL. $0只会告诉你shell二进制文件的
我怎么知道我的shell是什么类型的?即是传统的sh,bash,ksh,csh,zsh等.
请注意,检查$SHELL或$0将不起作用,因为$SHELL不是由所有shell设置的,因此如果您在一个shell中启动,然后再启动另一个shell,那么您仍然可以使用旧的SHELL. $0只会告诉你shell二进制文件的位置,但是不告诉你/ bin / sh是一个真正的Bourne shell还是bash. 我认为答案将是“尝试一些功能,看看什么休息”,所以如果有人可以指出一个这样做的脚本,那将是很棒的.
这是我在.profile中使用的:
# .profile is sourced at login by sh and ksh. The zsh sources .zshrc and # bash sources .bashrc. To get the same behaviour from zsh and bash as well # I suggest "cd; ln -s .profile .zshrc; ln -s .profile .bashrc". # Determine what (Bourne compatible) shell we are running under. Put the result # in $PROFILE_SHELL (not $SHELL) so further code can depend on the shell type. if test -n "$ZSH_VERSION"; then PROFILE_SHELL=zsh elif test -n "$BASH_VERSION"; then PROFILE_SHELL=bash elif test -n "$KSH_VERSION"; then PROFILE_SHELL=ksh elif test -n "$FCEDIT"; then PROFILE_SHELL=ksh elif test -n "$PS3"; then PROFILE_SHELL=unknown else PROFILE_SHELL=sh fi 它在ksh88,ksh95,pdksh或mksh等之间没有很好的区别,但是在十多年以来,已经证明对我来说是按照我在家的所有系统(BSD,SunOS,Solaris,Linux,Unicos,HP-UX,AIX,IRIX,MicroStation,Cygwin.) 我没有看到需要检查.profile中的csh,因为csh在启动时提供其他文件.你写的任何脚本不需要检查csh和Bourne的遗产,因为你明确地在shebang行中命名翻译. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- windows-7 – Docker:当试图运行docker run hello-world
- Why to Write Shell Script
- 使用CXF实现Webservice的服务接口提供以及相关的客户端实现
- twitter-bootstrap – 您可以使用.NET MVC模板中的bootstra
- angularjs unsafe ng-href using javascript: void(0);
- 如何以编程方式动态创建angular2中的多个独立组件实例?
- scala – 在不指定中间值的情况下链接值的操作
- WebService基础教程之三(通过UrlConnection调用WebService
- scala中Trait简单使用
- 阿里云Redis加速Discuz论坛访问
推荐文章
站长推荐
热点阅读