Créer un script Unix sous OS X
Initiation et rappels des bases pour réaliser un script Shell.
O et comment ?crire un nouveau script ?
Point de départ : où et comment écrire un nouveau script?Il y a deux façons d'écrire un nouveau script : soit avec un éditeur de texte (BBEdit, TextEdit, ...), soit directement dans le terminal avec pico par exemple. Quitte à jouer avec le mode Unix de Mac OS X, autant tout faire dans le terminal, je vais donc utiliser la deuxième solution (avec pico).
Je commence par lancer le terminal, qui se trouve dans le dossier Applications/Uitlitaires. La commande cd /Users/Gotchi/Desktop me permet de me placer au niveau de mon bureau, et la commande pico me lance un éditeur dans le lequel je vais pouvoir taper les commandes que je veux :
On remarque dans la fenêtre de pico qu'il faudra faire un "contrôle O" pour enregistrer le fichier que l'on vient de taper, et "contrôle X" pour quitter l'éditeur pico. La première ligne que l'on va taper dans ce script est la ligne "#!/bin/bash", et on enregistre grâce à la commande contrôle O (o majuscule, et non pas le zéro), et je donne un nom de fichier suivi de l'extension .bash
Un contrôle X me permet de quitter pico, et la commande ls -l me permet d'afficher ce que j'ai sur mon bureau.
Je retrouve bien le script que je viens de créer. Seul souci, par défaut, ce script que l'on vient de créer n'a pas les droits nécessaires pour être exécuter (je peux le lire ou le modifier, mais pas l'exécuter), mais il faudra pourtant pouvoir l'exécuter par la suite. On va donc corriger les droits, afin d'avoir les droits d'exécution sur ce fichier. Les droits se lisent ainsi : au début de chaque ligne (pour chaque élément présent dans le dossier où je me trouve), on voit une suite de r, de x, de w, de d, ... . Le caractère d au début de la ligne veut dire que l'élément en question est un dossier. Ainsi, sur mon bureau, j'ai donc un dossier nommé documents, et deux autres éléments qui sont des fichiers (commencent par - et non pas d comme dossier). Ensuite, il y a à chaque fois trois séries de trois caractères pour représenter les droits de l'élément : r pour read (lecture), w pour write (écriture), et x pour les droits d'exécution, et ceci trois fois : une fois pour le propriétaire de l'élément, une fois pour le groupe auquel appartient le propriétaire, et une fois pour les autres utilisateurs. Ainsi, sur le fichier exemple.bash, je possède les droits de lecture et d'écriture (r et w), mais pas les droits d'exécution (- et non pas x), contrairement au fichier admin_raid.ksh, sur lequel j'ai tous les droits (rwx). Pour ces deux fichiers, les membres du groupe et les autres utilisateurs n'ont que les droits de lecture (r--), et non pas rw- ou rwx par exemple. La commande "chmod u+x nom_du_fichier" permet de me donner les droits d'exécution sur le fichier de mon choix.
Voilà, une grosse partie du travail est faite :-)
On a maintenant un fichier dans lequel on va pouvoir taper nos commandes, fichier que l'on pourra par la suite exécuter.