Question 1Que spécifie le #!/bin/sh sur la première ligne d'un script shell ?
Ton premier script shell — le créer et l'exécuter
Crée un script shell dans vi, ajoute #!/bin/sh, rends-le exécutable avec chmod +x et lance-le avec ./hello.sh. Illustré et pratiqué dans ton navigateur.
Créer un script — vi et #!/bin/sh
Un script shell regroupe dans un fichier les commandes que tu taperais normalement dans un terminal, pour pouvoir les exécuter toutes d'un coup.
Au lieu de taper à la main une suite fixe d'étapes à chaque fois, tu les écris dans un fichier, et tu peux répéter exactement le même travail autant de fois que tu veux.
Ici, tu vas apprendre les bases pour créer et exécuter un script shell.
Ouvre le fichier avec vi hello.sh, appuie sur i pour entrer en mode insertion et tape le corps, puis appuie sur Esc et enregistre et ferme avec :wq (les manipulations de base de vi sont celles que tu as apprises la dernière fois).
Mets #!/bin/sh sur la première ligne, un shebang, qui indique quel shell exécute le script.
Les lignes qui commencent par # sont ignorées à l'exécution en tant que commentaires.
La seule exception est la première ligne : même si #!/... commence par #, ce n'est pas un commentaire — c'est interprété spécialement comme la directive indiquant quel shell exécuter.
vi hello.sh donne -rw-r--r-- (sans x) ; chmod +x le change en -rwxr-xr-x (avec x), et ./hello.sh l'exécute. Le centre montre la vérification avec ls -l.| Syntaxe | Signification | Exemple |
|---|---|---|
vi f | Ouvrir un fichier dans l'éditeur (le créer s'il n'existe pas) | vi hello.sh |
i … Esc | Écrire le corps en mode insertion, Esc revient en mode normal | Appuie sur i … Esc |
:wq | Enregistrer et quitter vi | :wq |
#!/bin/sh | Le shebang sur la première ligne (indique le shell à exécuter) | #!/bin/sh |
# comment | Une ligne explicative ignorée à l'exécution | # create backup |
chmod +x f | Ajouter la permission d'exécution à un fichier | chmod +x hello.sh |
./f | Exécuter le script dans le répertoire courant | ./hello.sh |
>> f | Ajouter (append) à la fin d'un fichier (sans écraser) | date >> run.log |
vi note.sh # ouvrir le script dans l'éditeur
# appuyer sur i pour entrer en mode insertion et écrire :
# #!/bin/sh
# # show a short message
# echo "build step 1"
# echo "build step 2"
# appuyer sur Esc et enregistrer et quitter avec :wq
chmod +x note.sh # ajouter la permission d'exécution
./note.sh # affiche build step 1 / build step 2
L'exécuter — chmod +x et ./
Un fichier que tu viens tout juste de créer ne peut pas être exécuté tel quel.
Une fois que tu ajoutes la permission d'exécution avec chmod +x file, tu peux l'exécuter sous la forme ./file.
./ est la manière de désigner un fichier dans le répertoire courant ; sans cela, le shell ne cherche la commande que dans le PATH et ne la trouve pas.
vi greet.sh # ouvrir dans l'éditeur, écrire #!/bin/sh et echo hi, enregistrer avec :wq
ls -l greet.sh # pas encore de permission d'exécution
chmod +x greet.sh # ajouter la permission d'exécution
ls -l greet.sh # un x apparaît au bord gauche
./greet.sh # affiche hi
Il existe aussi une façon de l'exécuter sans permission d'exécution
Quand tu veux l'exécuter sans ajouter la permission d'exécution, il existe aussi une façon de passer le fichier à un shell, comme sh file.
Dans ce cours, nous utilisons la forme de base : ajouter la permission d'exécution et exécuter avec ./file.
Tu peux vérifier si la permission d'exécution a été ajoutée selon qu'un x apparaît au bord gauche de ls -l.
Construire un petit outil qui enregistre les exécutions
Le flux créer, donner la permission et exécuter que tu as appris s'utilise directement dans de petits outils du quotidien.
Ici, tu vas construire un outil de journalisation qui ajoute (append) « quand le script a été exécuté » dans un seul fichier de log.
Quand tu ajoutes avec >>, les lignes s'empilent à chaque exécution, donc tu peux revoir plus tard l'historique d'exécution.
date >> run.log et l'affichage cat run.log, et chaque répétition empile une ligne de plus dans run.log.Vérification des connaissances
Répondez à chaque question une par une.
Question 2Quelle commande ajoute la permission d'exécution à un script que tu as créé ?
Question 3Quelle est la façon d'exécuter hello.sh dans le répertoire courant ?