2010-07-28 28 views

Respuesta

120

Probar:

echo $0 

menudo, esto funciona a través de una variedad de conchas.

+0

No funciona con fish – rominf

+0

@rominf: con 'fish' solo escriba' $ 'y luego' tab'. Verá un grupo de variables '$ __ fish' y' $ fish' definidas –

+0

Esto tampoco funciona desde un archivo de origen. – Steve

19
mac:~$ ps 
    PID TTY   TIME CMD 
    223 ttys000 0:00.33 -bash 

obsd:~$ ps 
    PID TT STAT  TIME COMMAND 
20038 p0 Ss  0:00.01 -ksh (ksh) 
22251 p0 R+  0:00.00 ps 

O simplemente echo $SHELL

+8

Creo que '$ SHELL' es el shell por defecto para el sistema (o usuario), que suele ser (pero no necesariamente) el shell que se está utilizando en un momento dado. –

7

Cada shell que conozco establece la variable $ ($$) en su pid. Así que ...

ps | grep $$ 
+0

El pescado es la excepción. Necesita usar% self – rominf

5

Si está utilizando el terminal OSx, a continuación, la cáscara se especifica en la barra de título de la terminal cuando se lanza él - de este modo: Terminal - ShellName - 80x24

+0

Creo que esta es la respuesta correcta. –

11

El comando echo $SHELL le dará su shell nombre relativo a la raíz.

+0

No se garantiza que SHELL esté configurado. Por ejemplo, mi shell de inicio de sesión es bash, pero si ejecuto/bin/sh en la línea de comandos, SHELL sigue siendo/bin/bash aunque/bin/sh ls dash. –

+1

$ SHELL es el shell de inicio de sesión. Si tu shell de inicio de sesión es bash y comienzas tcsh, entonces $ SHELL seguirá siendo muy difícil, incluso el shell que estás ejecutando es tcsh. –

+0

echa un vistazo a # ps -p $$ | cola -1 | awk '{print $ 4}' –

Cuestiones relacionadas