Pages : 1
#1 Le 26/04/2007, à 12:17
- TatSou-Max
Langage du Shell
Bonjour,
Je cherche à créer des Shell-scripts. Et si je ne me trompe pas, le langage qui lui est associé est le Lisp ?
Et je cherche de la documentation (Web, livre, revu...) sur ce langage, afin d'avancer dans sa programmation.
Merci de m'aider.
Hors ligne
#2 Le 26/04/2007, à 12:19
- BookeldOr
Re : Langage du Shell
Non ce n'est pas du Lisp, c'est du... shell script, avec des particularités pour certains shells (bash, zsh), mais une base commune (sh).
pour apprendre : man bash et lire des scripts peut marcher
Dernière modification par BookeldOr (Le 26/04/2007, à 12:20)
Ubuntu is an ancient african word meaning : "I can't configure Debian".
Hors ligne
#3 Le 26/04/2007, à 12:30
- TatSou-Max
Re : Langage du Shell
l'utilisation du man, j'ai appris à m'en servir, mais je lui trouve des défauts.
Lire des scripts a malheureusement un inconvénient, c'est que l'on se perd facilement dans le programme.
Autre question, comment active-t-on le shell script mode sur emacs ?
Hors ligne
#4 Le 26/04/2007, à 12:37
- BookeldOr
Re : Langage du Shell
À priori, si tu appelles ton script .sh, et/ou que tu mets le #!/bin/bash au début ça doit marcher non? sinon, M-x shell-script-mode
Ubuntu is an ancient african word meaning : "I can't configure Debian".
Hors ligne
#5 Le 26/04/2007, à 12:43
- TatSou-Max
Re : Langage du Shell
C'est parce quand fait, j'ai plutôt tendance à ouvrir emacs, a choisir le mode puis a sauvegarder.
Et non à lancer emacs depuis le shell, genre:
emacs mon_script.sh &
Hors ligne
#6 Le 26/04/2007, à 13:47
- pacome
Re : Langage du Shell
Bonjour,
Google a trouvé ce tutoriel sur les scripts bash qui fournit déjà une bonne base (il y en a d'autres...).
C'est vrai que le man peut sembler rébarbatif, mais ça reste LA référence pour trouver comment se servir d'une commande, ses paramètres; perso, ça fait des années que je fais des petits scripts (pas tous les jours non plus ), mais j'y retourne presque à chaque fois.
Petit rappel pour man:
- /chaine cherche le motif chaine en avant
- ?chaine cherche le motif chaine en arrière
- n cherche l'occurence suivante
- p revient à la première page
Si tu préfères les raccourcis "à la emacs", tu peux aussi utiliser info:
- ctrl-s recherche incrémentale avant
- ctrl-r recherche incrémentale arrière
Enfin pour les modes d'emacs, si tu crées un nouveau buffer tu peux, comme te l'indiquait BookeldOr
- affecter le mode à la main: M-x shell-script-mode
- le sauver (C-x C-s) dans un fichier.sh et le recharger (C-x C-v ret)
- insérer #!/bin/bash en première ligne, le sauver et le recharger (le mieux à mon avis)
- ou insérer # -*- shell-script -*- en première ligne, le sauver et le recharger (permet de forcer le mode d'un buffer)
Note: c'est emacs qui est codé en lisp.
A+
Hors ligne
#7 Le 26/04/2007, à 13:51
- Desintegr
Re : Langage du Shell
Note: c'est emacs qui est codé en lisp.
Note: Emacs est codé en C et inclut Emacs Lisp (lui aussi codé en C). Et les principales fonctionnalités d'Emacs sont codées avec Emacs Lisp.
Hoc Volo, Sic Jubeo !
Mon wiki : http://desintegr.free.fr
Hors ligne
#8 Le 26/04/2007, à 14:27
- pacome
Re : Langage du Shell
Note: Emacs est codé en C et inclut Emacs Lisp (lui aussi codé en C). Et les principales fonctionnalités d'Emacs sont codées avec Emacs Lisp.
En effet, merci pour ces précisions.
(j'aurais du parler des "librairies" d'emacs).
A+
Hors ligne
#9 Le 26/04/2007, à 14:29
- TatSou-Max
Re : Langage du Shell
Bon, d'abord, merci beaucoup pour toutes ces précisions !
Ensuite, comme ces derniers jours, j'ai passé pas mal de temps à modifier mon .emacs (écrit en lisp) cela doit expliquer ma confusion.
Enfin, je vais aller voir le lien que tu m'as passé pacome.
Hors ligne
#10 Le 28/04/2007, à 11:34
- TatSou-Max
Re : Langage du Shell
Est-ce que l'on pourrait m'éclairer sur la commande exec, parce que j'ai lu le man mais cela ne pas permis de comprendre son utilité.
Et surtout, je ne fais pas de différence entre:
exec 3
exec 4
exec 5
Merci
Hors ligne
#11 Le 30/04/2007, à 14:54
- pacome
Re : Langage du Shell
Salut,
Je ne comprends pas ta question (exec 3?) mais voici ce que je sais sur exec.
Si un script1 lance un script2 (sans utiliser exec), script1 va créer un processus dans lequel sera exécuté script2.
Si script1 lance script2 avec exec (exec script2), l'execution de script2 remplace celle de script1 dans le process de celui-ci (pas de sous-process créé).
Si tu veux t'en convaincre, écris de petits scripts (1 et 2) qui affichent leur pid (process id) et ppid (parent process id); tu y accèdes avec les variables $$ et $PPID.
Ça peut servir à éviter la création d'un sous-process (allocation mémoire+ressources); ou à connaitre dans le processus-père le pid du processus-fils avant que celui-ci n'exec-ute une autre commande qui pourra alors être "pilotée" par le processus-père (avec kill et trap).
C'est ce qui me vient à l'esprit; d'autres auront sans doute d'autres exemples d'utilisation.
A+
Hors ligne
#12 Le 01/05/2007, à 10:11
- TatSou-Max
Re : Langage du Shell
En fait, voilà, j'ai un script donnant ça:
exec 3<fichier
(
[suite d'instruction]
) <&3
Et je ne comprends pas a quoi sert exec.
Hors ligne
#13 Le 01/05/2007, à 11:15
- any
Re : Langage du Shell
tiens tu va trouver la reponse ici .
bonne lecture
http://abs.traduc.org/abs-4.2.01-fr/ch19.html
#14 Le 03/05/2007, à 09:10
- TatSou-Max
Re : Langage du Shell
Ok merci any !
Ton lien m'a beaucoup servi.
Hors ligne
Pages : 1