概述
背景:
在 Linux 的世界中,有着许多 shell 程序。常见的有:
-
Bourne shell (sh)
-
Bourne Again shell (bash)
-
C shell (csh)
-
TC shell (tcsh)
-
Korn shell (ksh)
有时候我们经常会遇到这种情况:“欸?我昨天还用过这个命令,确实是这样用的啊,怎么就不对了呢?”
遇到这种情况,最好可以先确认一下当前您处于哪种shell环境。命令失败的很大可能是,当前的这中shell环境压根就不支持这个命令。你昨天很有可能是在另一个 shell 环境中运行的。
解决方案一:echo $0
在 Linux 中,$0 表示当前运行的进程的名称。在多数情况下(注意,不是绝大多数情况下),当你在 shell 手动输入命令,临时起意,想看一下当前 shell 具体是哪个程序时,$0 是最简单的方法。我们可以将其打印出来:
echo $0
注意:如果你的 shell 程序是 csh ,或者 shell 程序是 symlink,亦或是在脚本中需要知道当前的 shell 是什么。$0 都无法确保给你的答案是绝对正确的。
解决方案二:ps -p "$$"
$$ 获取当前 shell 实例的 PID ,然后通过 ps 命令寻找该 PID 所对应的进程。结果中的 CMD 列,会列出当前 shell 程序的名称。
ps -p "$$"
# PID TTY TIME CMD
# 18329 pts/0 00:00:00 bash
echo "$$"
# 18329
最后
以上就是鳗鱼小虾米为你收集整理的如何查看自己当前位于哪种shell环境(bash 还是 csh)??的全部内容,希望文章能够帮你解决如何查看自己当前位于哪种shell环境(bash 还是 csh)??所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复