Accueil
» MAC OS X
»
Comment exécuter un script shell (.sh) sur macOS
Comment exécuter un script shell (.sh) sur macOS
Pour exécuter un script shell sous macOS , ouvrez le Terminal, accédez au dossier contenant le .shfichier et exécutez-le avec son interpréteur. Par exemple, `bash` bash hello.shexécute un script Bash sans modifier ses permissions. Si vous souhaitez l'exécuter comme une commande, rendez-le exécutable avec `bash_executive` chmod +x hello.sh, puis exécutez `bash_executive` ./hello.sh. Ces méthodes fonctionnent sur les versions actuelles de macOS.
Vérifiez le script avant de l'exécuter.
Un script shell est un fichier texte contenant des commandes. Ces commandes s'exécutent avec les permissions de votre compte utilisateur ; un script peut donc modifier ou supprimer des fichiers, installer des logiciels ou envoyer des données sur un réseau. Lisez attentivement un script que vous recevez avant de l'exécuter, surtout s'il demande un mot de passe administrateur ou utilise des privilèges d'administrateur sudo. N'exécutez que des scripts provenant de sources fiables ; modifier les permissions d'un fichier ne sécurise pas son contenu.
Apple décrit les scripts shell comme des fichiers texte contenant des commandes UNIX et explique comment un shebang permet de sélectionner l'interpréteur de commandes qui exécutera le script. Consultez le guide des scripts shell du Terminal d'Apple .
Exécuter un script .sh avec Bash
Voici la méthode la plus simple pour exécuter un script Bash. Il n'est pas nécessaire d'ajouter au préalable l'autorisation d'exécution.
Créez ou localisez le script. Un script shell peut être écrit dans n'importe quel éditeur de texte brut. Pour un test rapide, ouvrez TextEdit, choisissez Format > Convertir en texte brut , puis saisissez ces deux lignes :
#!/bin/bash
echo "Hello from macOS"
Enregistrez le fichier sous le nom hello.sh. Dans la boîte de dialogue d'enregistrement, vérifiez que le nom se termine bien par . .shet que TextEdit n'a pas ajouté de .txt. La première ligne est le shebang : elle identifie Bash comme interpréteur lorsque le script est lancé directement. La deuxième ligne affiche un court message.
Le fichier exemple hello.sh contient un shebang suivi d'une commande qui affiche du texte.
Ouvrez le Terminal et accédez au dossier contenant le fichier. Appuyez sur Commande + Espace, saisissez « Terminal » et appuyez sur Entrée. Si vous avez enregistré le fichier dans le dossier Téléchargements, saisissez :
cd ~/Downloads
Appuyez sur Entrée après chaque commande. Vous pouvez saisir du texte lspour lister les fichiers et vérifier leur hello.shprésence. Accédez ensuite Downloadsau dossier que vous avez utilisé. Si un nom de dossier ou de fichier contient des espaces, placez le chemin entre guillemets, par exemplecd "$HOME/My Scripts" : .
Utilisez la commande cd pour ouvrir le dossier contenant le script, puis vérifiez son nom avec la commande ls.
Exécutez le script avec Bash. Saisissez le nom du script après bash:
bash hello.sh
Le terminal devrait afficher «Hello from macOS . ». Si le script utilise la syntaxe Zsh au lieu de Bash, exécutez zsh hello.shla commande suivante : `.zsh`. L'interpréteur de commandes qui s'ouvre de manière interactive dans le terminal est généralement Zsh, mais cela ne signifie pas que tous les scripts doivent être exécutés avec Zsh ; utilisez l'interpréteur pour lequel le script a été écrit. Le shebang d'un script indique souvent cet interpréteur.
Accordez l'autorisation d'exécution. Dans la même fenêtre Terminal et le même dossier, exécutez :
chmod +x hello.sh
Cela ajoute l'autorisation d'exécution à ce fichier. Cette modification est ponctuelle, sauf si les autorisations sont réinitialisées ultérieurement. Évitez d'utiliser des autorisations plus larges que nécessaire ; chmod +xcelles-ci suffisent pour un script personnel.
La commande chmod +x rend hello.sh exécutable.
Lancez-le depuis le dossier actuel. Tapez :
./hello.sh
L' ./option `--script` indique à l'interpréteur de commandes d'exécuter le fichier dans le répertoire courant. Sans elle, l'interpréteur de commandes recherche généralement le fichier dans les dossiers listés dans ` --script` PATHplutôt que dans le répertoire courant. Si vous vous trouvez ailleurs, utilisez `--script` cdpour revenir au dossier du script ou saisissez son chemin complet, par exemple `/usr/local/script` ~/Downloads/hello.sh.
L'exécution de ./hello.sh lance le script et affiche son résultat.
Erreurs courantes et solutions
« Permission refusée » après utilisation./hello.sh : confirmez le nom du fichier, puis exécutez-le chmod +x hello.sh. Ou utilisez bash hello.shs’il s’agit d’un script Bash et que vous n’avez pas besoin de l’exécuter directement.
« Fichier ou répertoire introuvable » : confirmez le dossier avec pwd, listez son contenu avec ls, et vérifiez l’orthographe et la casse. Assurez-vous que le fichier ne porte pas réellement le nom hello.sh.txt.
Erreur « Commande introuvable » dans le script : ce dernier utilise peut-être un utilitaire manquant ou absent PATH. Consultez la documentation du script avant toute installation.
« Interpréteur incorrect » ou une erreur mentionnant^M : la première ligne peut indiquer un interpréteur indisponible ou utiliser des fins de ligne de type Windows. Vérifiez le shebang et enregistrez le fichier avec des fins de ligne Unix (LF).
Quelle méthode devez-vous utiliser ?
Utilisez cette méthode bash hello.shpour une exécution rapide lorsque vous savez qu'il s'agit d'un script Bash. Utilisez `bash` chmod +x hello.shsuivi de `bash` ./hello.shlorsque vous souhaitez le lancer directement et laisser son shebang choisir l'interpréteur. Aucune de ces méthodes n'installe les dépendances manquantes, ne corrige les commandes incompatibles ni ne vérifie la fiabilité du script.