查看当前终端运行的是哪种shell

[bash toolbar=”false”]$ echo $SHELL [/bash]很具有欺骗性,我在zsh下运行也得到/bin/bash

正确的方式是
[bash toolbar=”false”]$ ps -p $$ [/bash]
会显示当前shell的进程信息,简单点: ps $$ 也可以,用-p参数更严谨一些。
(或 ps -fp $$ 看的信息更多一些)

$$表示当前进程id,显示当前终端的进程id如下:
[bash toolbar=”false”]$ echo $$ [/bash]

//2012.8.17补充
发现mac下的/usr/bin/cd是一段脚本
[bash toolbar=”false”]
% cat /usr/bin/cd
#!/bin/sh
builtin `echo ${0##*/} | tr \[:upper:] \[:lower:]` ${1+”$@”}
[/bash]

从这个脚本里发现使用 echo $0 就可以了
$0 是当前进程的名字,zsh下显示的是全路经 /usr/bin/zsh 而bash下显示的是 -bash,脚本里调用则显示的是脚本的名字
http://www.linuxquestions.org/questions/programming-9/what-exactly-does-echo-$0-return-782908/

查看当前终端运行的是哪种shell》上有1个想法

发表评论

电子邮件地址不会被公开。 必填项已用*标注