

Le Terminal de Mac OS X (4)
Le Terminal de Mac OS X : Quatrième Épisode
Bonjour à tous et bienvenu dans ce nouvel épisode du Terminal de Mac OS X.
Cette semaine, je vais vous parler des scripts Shell.
Qu'est-ce qu'un script ?
Un script est un fichier texte (extension éventuelle .txt) exécutable, contenant une suite d'insctructions que l'ordinateur doit exécuter. Ça peut aller du simple affichage d'un caractère à l'exécution d'un jeu (je n'irai pas jusque-là, c'est un tutoriel pour les débutants). Dans notre cas, les instructions seront des commandes Shell.
C'est une simplicité enfantine. Il suffit tout simplement de créer le fichier texte et de le rendre exécutable grâce à la commande "chmod". Après il vous suffira d'exécuter le fichier come une vulgaire commande.
Nous allons faire un petit tutoriel pour mieux comprendre.
Alors, vous commencez par créer un fchier txt à partir de TextEdit par exemple. Attention, ce se doit d'être un fichier texte, par RTF, pour modifir le format, direction les préférences de TextEdit puis "format txt".
- Vous allez commencer par ecrire :
echo Hello, World!
- Vous sauvegardez votre fichier sous le nom de "Hello", sans le txt, dans votre dossier de départ.
- Vous ouvrez, ensuite, le terminal et tapez :
chmod u+x ~/Hello Pour ceux qui ont suivi la rubrique, ou qui connaissent la commande tout simplement, vous comprenez que cela signifie "ajoute les autorisations d'exécution pour le propriétaire du fichier ~/Hello"
- Dès que cela est fait, vous pouvez exécuter votre script en tapant dans le terminal :
~/Hello Cela devrait vous afficher : "Hello, World!" (sans les guillemets).
Et voilà votre premier programme qui s'exécute comme une commande normale, d'ailleurs, c'est une commande. Car toutes les commandes que vous apprenez sont de simples scripts ou programmes systèmes sous forme de fichiers. Ces fichiers portent le nom de leur commande et se cachent dans des dossiers spécifiques que je vous apprendrai la prochaine fois.
alias
Alors je suis d'accord que taper "~/Hello" est un peu long pour une commande, surtout si votre fichier ne se trouve pas dans le dossier de départ. Donc pour remédier à ce problème, et pour vous permettre de transformer n'importe quel script en commande simple. Je vais vous apprendre la commande "alias", qui n'a aucun rapport avec les alias du Finder qui eux sont des liens symboliques pour le Terminal.
Voici sa synthaxe :
alias [-p] [nom[=valeur]]
Le principe est assez simple : après avoir exécuté une telle commande, le Shell interprètera le terme "nom" comme étant "valeur". Si vous ne mettez rien ou l'option "-p", alias vous affichera tous les alias que vous aurez écrit dans cette session. Oui, car les alias que vous faites avec cette commande ne sont pas permanents... Vous saurez la semaine prochaine comment faire, mais en attendant, si vous fermez la fenêtre du terminal vos alias disparaîtront avec elle.
Nous allons reprendre notre exemple précédent pour éxpliquer la commande alias : Dans le terminal, tapez la commande : alias Hello="~/Hello"
Maintenant votre terminal interprétera "Hello" comme étant le fichier "~/Hello", essayez ! Tapez "Hello" et exécutez... vous devriez voir apparaître "Hello, World!" à nouveau.
Voilà pour "alias".
À présent, vous pouvez faire des petits scripts facile à faire. Si vous avez, par exemple, des opérations récurrentes à faire. Il vous suffit de créer un fichier texte, de taper les commandes à la suite (une par ligne), d'ajouter les autorisations d'exécution sur le fichier en question et de l'exécuter.
Bon tout de suite, et pour conclure, je vais vous donner un petit script à écrire qui vous permettra d'éviter d'avoir à refaire toutes ces opérations ennuyeuses...Pour cela, je vais vous apprendre des termes très simples :
Ils commencent tous par le signe "$", ce signe signifie en règle générale "valeur de", valeur de quoi ??? Et bien, valeur du symbole qui suit, par exemple : "$1" représente la valeur du premier paramètre de la commande utilisée... Puis "$2" le deuxième, etc. "$0" représente le nom de la commande (ou son fichier) et "$#" représente le nombre de paramètres écrits après la commande.
De plus, nous aurons besoin de deux autres commandes, en fait, seule la première sera utile, mais connaître les deux peut être utile :
- basename fichier : cette commande transforme un chemin complet en un simple nom de fichier. Par exemple :
- "/Users/Psycho/Pictures/Psycho.jpg" deviendra "Psycho.jpg".
- dirname fichier : cette commande transforme un chemin complet en un chemin simple, c'est-à-dire que le nom du fichier est supprimé. Par exemple :
- "/Users/Psycho/Pictures/Psycho.jpg" deviendra "/Users/Psycho/Pictures/
Donc voilà, vous avez tous les éléments pour faire cet exercice : un script permettant de transformer un fichier donné en paramètre, en fichier exécutable. Et la semaine prochaine, vous aurez la réponse à l'exercice.
Petite aide : vous pouvez aussi donner deux paramètres au lieu d'un : l'un sera le nom du fichier l'autre le nom de la future commande.
De plus, je rappelle que le signe "$" indique une valeur qui peut-être un nombre ou une chaîne de caractères.
Voilà bonne soirée à tout le monde et à la semaine prochaine.
Psycho
salut je voudrais savoir si tu pouvais m'expliquer un peu la création d'un script parce que j'y arrive pas j'avais fait un script qui me disait des erreurs et maintenant ca reste un fichier rtf ... mon adresse msn c'est maxou51@hotmail.com