Contenu | Rechercher | Menus

Annonce

Si vous rencontrez des soucis à rester connecté sur le forum (ou si vous avez perdu votre mot de passe) déconnectez-vous et reconnectez-vous depuis cette page, en cochant la case "Me connecter automatiquement lors de mes prochaines visites".

#1 Le 28/03/2010, à 10:16

sali10

type de shell

comment savoir le type de shell sur lequel en travaille....je sais qu'il y en par exemple csh, sh, bash.....

Hors ligne

#2 Le 28/03/2010, à 10:19

jrev

Re : type de shell

sur quel linux es-tu ?
Si tu es sur Ubuntu c'est le bash et la console gnome est bien pratique à utiliser car tu peux glisser un fichier dans la fenêtre, ce qui va inscrire sans faute son adresse exacte sur ton PC
big_smile

Dernière modification par jrev (Le 28/03/2010, à 10:20)


Mal nommer les choses, c'est ajouter au malheur du monde

Hors ligne

#3 Le 28/03/2010, à 10:25

sali10

Re : type de shell

je travaille sous la debian, (genom)

Hors ligne

#4 Le 28/03/2010, à 10:39

jrev

Re : type de shell

sali10 a écrit :

je travaille sous la debian, (genom)

pose ta question sur le site debian-facile cool


Mal nommer les choses, c'est ajouter au malheur du monde

Hors ligne

#5 Le 28/03/2010, à 10:41

jrev

Re : type de shell

sali10 a écrit :

je travaille sous la debian, (genom)

pose ta question sur :
http://wiki.debian-facile.org/wiki/doku.php


Mal nommer les choses, c'est ajouter au malheur du monde

Hors ligne

#6 Le 28/03/2010, à 10:52

credenhill

Re : type de shell

hello
pour afficher ton shell
echo $SHELL

Hors ligne

#7 Le 28/03/2010, à 18:53

Totor

Re : type de shell

Bonsoir,

echo $SHELL

Ca ne marche pas à tout les coups.
Ex. Par défaut, mon shell est le bash. Si je passe en zsh et que j'affiche le contenu de cette  variable, le résultat est "/bin/bash".
En console, pour connaitre son shell, une solution est d'afficher $0.
Ce qui n'est pas possible dans un script car par défaut, $0=nom du script.


-- Lucid Lynx --

Hors ligne

#8 Le 29/03/2010, à 10:35

serged

Re : type de shell

Totor a écrit :

Bonsoir,

echo $SHELL

En console, pour connaitre son shell, une solution est d'afficher $0.
Ce qui n'est pas possible dans un script car par défaut, $0=nom du script.

Oui, mais dans un script, on a déjà renseigné "en dur", le nom du shell dans la première ligne :

#!/bin/sh

...par exemple...
Donc il n'est pas idiot d'écrire bêtement :

echo "Script exécuté par /bin/bash"

Linux-Mint Petra 64 (Cinnamon) sur ASUS F2A55/AMD A8-5600K APU

Hors ligne

#9 Le 29/03/2010, à 10:45

Totor

Re : type de shell

@serged : Le problème n'est pas là. De plus, préciser le shebang n'est pas gage d'utilisation de l'interpréteur en question. Ce qui est absolument absurde je te l'accorde, et pourtant ça existe : au TAF, je me suis cassé la tête à essayer de comprendre pourquoi des notations spécifiques à l'interpréteur précisé par le shebang ne fonctionnaient pas avec des scripts exécutés par un ordonnanceur. Au final, j'ai compris en constatant que l'ordonnanceur utilisait le shell défini par défaut de l'utilisateur pour lancer les scripts.

Exemple :
le shebang : #!/bin/ksh
le shell par défaut : /bin/bash

l'ordonnanceur exécute les scripts comme ceci :
/bin/bash <nom du script>

le shebang n'est alors pas utilisé.... hmm


-- Lucid Lynx --

Hors ligne

#10 Le 29/03/2010, à 12:01

DaveNull

Re : type de shell

@serged : En plus, dans pas mal de distribs, ubuntu entre autres je crois, /bin/sh est en fait rien qu'un lien symbolique vers /bin/bash.
Chez moi :

ls -l /bin/sh
lrwxrwxrwx 1 root root 4 31 janv. 13:12 /bin/sh -> bash

« Ce pangramme autodescriptif en hommage à Douglas Hofstadter, Lee Sallows, Jacques Pitrat, Nicolas Graner et Éric Angelini contient exactement dix-sept a, un b, onze c, huit d, trente-cinq e, cinq f, neuf g, six h, vingt-quatre i, deux j, un k, sept l, six m, vingt-six n, onze o, huit p, huit q, onze r, quinze s, vingt-sept t, dix-sept u, quatre v, deux w, neuf x, un y, et cinq z. »
— oulipo

Hors ligne

#11 Le 29/03/2010, à 15:18

serged

Re : type de shell

She0gorath a écrit :

@serged : En plus, dans pas mal de distribs, ubuntu entre autres je crois, /bin/sh est en fait rien qu'un lien symbolique vers /bin/bash.
Chez moi :

ls -l /bin/sh
lrwxrwxrwx 1 root root 4 31 janv. 13:12 /bin/sh -> bash

Mais le fait de mettre "/bin/sh" (plutôt que bash) suppose que le script n'utilise pas les extensions bash.
Chez moi :

ls-l /bin/sh
lrwxrwxrwx 1 root root 4 2009-11-14 17:15 /bin/sh -> dash

qui doit d'ailleurs être l'installation par défaut...

(voir http://fr.wikipedia.org/wiki/Debian_Almquist_shell )


Linux-Mint Petra 64 (Cinnamon) sur ASUS F2A55/AMD A8-5600K APU

Hors ligne

#12 Le 29/03/2010, à 23:26

sali10

Re : type de shell

mais pourqoui change ton de shell? est ce qu'il y a une difference entre travailler sous bash et le sh par exemple....

Hors ligne

#13 Le 30/03/2010, à 07:55

Watael

Re : type de shell

parce que tous les systèmes ne démarrent pas avec le même shell :
- Ubuntu démarre avec dash en tant qu'interpréteur de commande (shell) : il est plus rapide à se charger en mémoire
- Debian GNU/Linux utilise Bash
voilà pour ceux que je connais
NB: ça n'a rien à voir avec le shell par défaut de l'utilisateur ! il s'agit là du shell utilisé par le système pour lancer les services dont il a besoin.

la manière la plus sûre d'écrire un script, qui doit éventuellement être lancé au moment du démarrage, est de l'écrire en Bourne shell (.sh : #!/bin/sh), parce que c'est le plus conforme à la norme POSIX.

bash ajoute des fonctionnalités qui ne sont pas portables sur tous les systèmes, pareil pour ksh, zsh, et autres

--
j'espère ne pas avoir dit trop de bêtises...au pire je serai corrigé par mes éminents prédécesseurs smile

Dernière modification par Watael (Le 30/03/2010, à 08:05)


eval, c'est mal.

Hors ligne

#14 Le 30/03/2010, à 10:37

serged

Re : type de shell

sali10 a écrit :

mais pourqoui change ton de shell? est ce qu'il y a une difference entre travailler sous bash et le sh par exemple....

Question de portabilité...
Un script tournant sous sh, tournera sous bash, mais pas le contraire. Pour les quelques différences, d'ailleurs, bash réagit différemment (en script) s'il est appelé "bash" ou "sh".

De plus il existe deux grandes familles de shell avec des syntaxes différentes :
- Les shells issus du Bourne Shell, nommés "sh" (bash, ash, dash...)
- Les shells issus du C-Shell (csh, tcsh...)

Et d'autres, comme le Korn-shell (ksh), le Z-shell (zsh)...

Voir : http://en.wikipedia.org/wiki/Unix_shell (l'article du wikipédia français est vraiment indigent).


Linux-Mint Petra 64 (Cinnamon) sur ASUS F2A55/AMD A8-5600K APU

Hors ligne