Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1046 connectés 

  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  Y'a une commande pour savoir sur quel shell on est ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Y'a une commande pour savoir sur quel shell on est ?

n°343299
KOYAANISQA​TSI
Posté le 23-10-2003 à 10:04:27  profilanswer
 

:??:

mood
Publicité
Posté le 23-10-2003 à 10:04:27  profilanswer
 

n°343301
iznogoud_2​3
chaud comme la braise
Posté le 23-10-2003 à 10:06:15  profilanswer
 

echo $SHELL  ??


---------------
C'est parce que la vitesse de la lumière est supérieure à celle du son, que tant de gens paraissent brillants avant d'avoir l'air con !
n°343313
Aragorn_1e​r
Le jihad butlérian est proche
Posté le 23-10-2003 à 10:19:42  profilanswer
 

ou tu regarde dans le /etc/passwd
 
A+

n°343342
arsunik
ma tuxitude me beastifie
Posté le 23-10-2003 à 11:39:51  profilanswer
 

Code :
  1. echo $0


Ensuite certains shell positionnent des variables particulières :
$BASH_VERSION pour bash, $ZSH_VERSION pour zsh...

n°343353
KOYAANISQA​TSI
Posté le 23-10-2003 à 11:57:30  profilanswer
 

Ok merci :)

n°343368
xpoulet
apt-get install poolaÿ
Posté le 23-10-2003 à 12:43:37  profilanswer
 

sinon env | grep SHELL :)


---------------
Preuve est faite que visages dévots et pieuses actions nous servent à enrober de sucre le diable lui-même.
n°343656
matafan
Posté le 24-10-2003 à 03:52:07  profilanswer
 

Ou aussi :

cat /proc/$$/cmdline

n°343683
iznogoud_2​3
chaud comme la braise
Posté le 24-10-2003 à 10:00:05  profilanswer
 

Franchement, vous cherchez la complication les gars :lol:
 

Citation :

sinon env | grep SHELL


Citation :

tu regarde dans le /etc/passwd


Citation :

cat /proc/$$/cmdline


Message édité par iznogoud_23 le 24-10-2003 à 10:00:38

---------------
C'est parce que la vitesse de la lumière est supérieure à celle du son, que tant de gens paraissent brillants avant d'avoir l'air con !
n°343760
xpoulet
apt-get install poolaÿ
Posté le 24-10-2003 à 13:06:41  profilanswer
 

:sol: of course
 
Pourquoi faire simple :??:
 
 
 
:D


---------------
Preuve est faite que visages dévots et pieuses actions nous servent à enrober de sucre le diable lui-même.
n°345809
matafan
Posté le 28-10-2003 à 06:02:12  profilanswer
 

Sauf que :

  • $SHELL peux a priori être mis a n'importe quoi
  • /etc/passwd ne veux strictement rien dire (j'ai très bien pû lancer un autre shell)
  • env | grep SHELL est un peu ricidule car equivalent à echo $SHELL est plus compliqué et pas plus sûr

Bref cat /proc/$$/cmdline est pour l'instant la solution la plus fiable, avec les autre qui suivent la même idée (genre ls -l /proc/$$/exe) :ange:


Message édité par matafan le 28-10-2003 à 06:04:27
mood
Publicité
Posté le 28-10-2003 à 06:02:12  profilanswer
 

n°345897
[Albator]
MDK un jour, MDK toujours !
Posté le 28-10-2003 à 11:48:43  profilanswer
 

Et si j'ai inversé /bin/bash et /bin/ksh , est-ce que le cat /proc/$$/cmdline est encore fiable ? Je veux dire, si le nom de l'exécutable de mon shell n'est pas le nom du shell en question ?
 
Edit: c'est bien ce que je pensais ... Si j'appelle mon shell par la commande /bin/sh (qui est un lien symbolique vers /bin/bash ou autre), le "cat /proc/$$/cmdline" me sort logiquement "/bin/sh", du coup je ne sais pas quel shell j'utilise vraiment ...
 
Pour trouver avec certitude quel shell on utilise, il faudrait pousser un peu plus loin, genre:
 
`cat /proc/$$/cmdline` --version


Message édité par [Albator] le 28-10-2003 à 11:55:57
n°345898
philou_a7
\_o< coin ! >o_/
Posté le 28-10-2003 à 11:51:18  profilanswer
 

heuuuu... le /proc/$$/cmdline, je suis pas très sur de sa portabilité :D
C'est vraiment du dédié linux, ça , non ? ;)

n°345903
[Albator]
MDK un jour, MDK toujours !
Posté le 28-10-2003 à 11:59:21  profilanswer
 

Il y a un /proc sur certains autres unices, mais je ne suis pas sûr qu'ils soient comme sous Linux ...
 
En tout cas, il est vrai qu'on n'a jamais précisé qu'il fallait que ça marche sous Linux :)


Message édité par [Albator] le 28-10-2003 à 12:00:15
n°346064
phosphorus​68
Pseudo à n°
Posté le 28-10-2003 à 15:16:13  profilanswer
 

[Albator] a écrit :

Il y a un /proc sur certains autres unices, mais je ne suis pas sûr qu'ils soient comme sous Linux ...
 
En tout cas, il est vrai qu'on n'a jamais précisé qu'il fallait que ça marche sous Linux :)


Dans ce cas: ver  :whistle:  
 
 
--> []

n°346109
arsunik
ma tuxitude me beastifie
Posté le 28-10-2003 à 15:58:44  profilanswer
 

Matafan a écrit :


Bref cat /proc/$$/cmdline est pour l'instant la solution la plus fiable, avec les autre qui suivent la même idée (genre ls -l /proc/$$/exe) :ange:


 
Je ne connais aucun shell qui ne positionne pas $0 à cette valeur.
Ma solution en testant les valeurs de BASH_VERSION, ZSH_VERSION... n'était pas bien ?
En plus comme ça on sait de suite si le sh utilisé est un lien sur bash ou pas.

n°346111
[Albator]
MDK un jour, MDK toujours !
Posté le 28-10-2003 à 15:59:54  profilanswer
 

ArSuniK a écrit :


 
Je ne connais aucun shell qui ne positionne pas $0 à cette valeur.
Ma solution en testant les valeurs de BASH_VERSION, ZSH_VERSION... n'était pas bien ?
En plus comme ça on sait de suite si le sh utilisé est un lien sur bash ou pas.
 


 
Le pb du $0 c'est si tu cherches à déterminer le shell depuis un script, c'est mort :)

n°346114
philou_a7
\_o< coin ! >o_/
Posté le 28-10-2003 à 16:01:50  profilanswer
 

En même temps, changer la valeur de $SHELL, faut etre vicieux et avoir que ça à foutre :lol:

n°346118
zeb_
Posté le 28-10-2003 à 16:10:33  profilanswer
 

Ca veut dire quoi $$ dans un chemin ?

n°346155
philou_a7
\_o< coin ! >o_/
Posté le 28-10-2003 à 17:30:55  profilanswer
 

ca doit etre le PID du programme en cours si je me souviens bien
 
et dans /proc, chaque PID existe sous la forme d'un pseudo-repertoire qui contient des pseudo-fichiers avec les infos sur ce processus... par exemple cmdline contient la ligne de commande qui a lancé ce processus :)
 
( a confirmer, ca fait longtemps que j'ai pas etudié ce genre de truc, je dis ca de memoire depuis un poste windows au bureau :lol: )

n°346388
matafan
Posté le 29-10-2003 à 04:35:59  profilanswer
 

C'est tout a fait ça.
 
Autrement /proc existe a ma connaissance sur tous les unix récents. Par contre le contenu des répertoires /proc/PID varie d'un unix a l'autre... /proc/PID/exe n'existe pas sur AIX par exemple (AIX a par contre /proc/PID/objects/a.out, mais ce n'est pas un lien symbolique). Je pense que /proc/PID/cmdline existe partout par contre.


Message édité par matafan le 29-10-2003 à 04:37:44
n°356075
Kahyman
Posté le 13-11-2003 à 17:52:28  profilanswer
 

Matafan a écrit :

C'est tout a fait ça.
 
Par contre le contenu des répertoires /proc/PID varie d'un unix a l'autre... /proc/PID/exe n'existe pas sur AIX par exemple (AIX a par contre /proc/PID/objects/a.out, mais ce n'est pas un lien symbolique). Je pense que /proc/PID/cmdline existe partout par contre.


 
/proc/PID/cmdline n'existe pas sous solaris... /proc/PID/psinfo te permet de voir quel shell tu utilises (a vu d'oeil)
 
Par contre solaris a bel et bien /proc/PID/objects/a.out comme AIX.
 

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  Y'a une commande pour savoir sur quel shell on est ?

 

Sujets relatifs
[shell][grep] détecter plusieurs nouvelles lignes.[shell] comment creer un fichier sous unix avec son path??
[shell] transformer un string en array...[shell][awk] récupérer la valeur max d'une sortie?
[shell] coment utiliser une variable dans un bloc << EOF ??[ Shell/Bash ] Quelques commandes pour lancer une appli
[linux] problème script shell : exit statusmySQL en ligne de commande
[dialog] comment ajuster la taille des widgets au shell?débits sur ppp0 en ligne de commande
Plus de sujets relatifs à : Y'a une commande pour savoir sur quel shell on est ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR