30Jun

Comment créer et exécuter des scripts Shell Bash sur Windows 10

Avec l'arrivée du shell Bash de Windows 10, vous pouvez maintenant créer et exécuter des scripts shell Bash sous Windows 10. Vous pouvez également incorporer des commandes Bash dans un fichier batch Windows ou un script PowerShell.

Même si vous savez ce que vous faites, ce n'est pas nécessairement aussi simple que cela puisse paraître. Windows et UNIX utilisent différents caractères de fin de ligne et le système de fichiers Windows est accessible dans un emplacement différent dans l'environnement Bash.

Comment écrire un script Bash sous Windows 10

Lorsque vous écrivez des scripts shell sous Windows, gardez à l'esprit que les systèmes Windows et UNIX comme Linux utilisent différents caractères "fin de ligne" dans les fichiers texte dans les scripts shell.

En d'autres termes, cela signifie que vous ne pouvez pas écrire simplement un script shell dans le Bloc-notes. Enregistrez le fichier dans le Bloc-notes et il ne sera pas interprété correctement par Bash. Toutefois, vous pouvez utiliser des éditeurs de texte plus avancés. Par exemple, Notepad ++ vous permet de donner un caractère de fin de ligne UNIX à un fichier en cliquant sur Modifier & gt;Conversion EOL & gt;Format UNIX / OSX.

Cependant, il vaut mieux simplement écrire le script shell dans l'environnement Bash lui-même. L'environnement Bash basé sur Ubuntu est fourni avec les éditeurs de texte vi et nano. L'éditeur vi est plus puissant, mais si vous ne l'avez jamais utilisé auparavant, vous pouvez commencer avec nano. C'est plus facile à utiliser si vous êtes nouveau.

Par exemple, pour créer un script bash dans nano, exécutez la commande suivante dans bash:

nano ~ / myscript.sh

Cela ouvrirait l'éditeur de texte Nano pointé sur un fichier nommé "myscript.sh" dans votre utilisateurrépertoire personnel du compte.(Le caractère "~" représente votre répertoire personnel, donc le chemin complet est /home/username/ myscript.sh.)

Lancez votre script shell avec la ligne:

#!/bin/ bash

Entrez les commandes que vous souhaitez exécuter, chacune sur sa propre ligne. Le script va exécuter chaque commande à son tour. Ajoutez un "#" caractère devant une ligne pour le traiter comme un "commentaire", quelque chose qui vous aide, vous et d'autres personnes, à comprendre le script mais qui n'est pas exécuté comme une commande. Pour des astuces plus avancées, consultez un guide plus détaillé sur les scripts Bash sous Linux. Les mêmes techniques fonctionneront dans Bash sur Ubuntu sous Windows.

Notez qu'il n'y a aucun moyen d'exécuter des programmes Windows à partir de l'environnement Bash. Vous êtes limité aux commandes et utilitaires de terminal Linux, comme vous le feriez sur un système Linux typique.

Par exemple, utilisons simplement un script basique "hello world" comme exemple ici:

#!/bin/ bash # définit la variable STRING STRING = "Hello World!"# affiche le contenu de la variable à l'écran echo $ STRING

Si vous utilisez l'éditeur de texte Nano, vous pouvez enregistrer le fichier en appuyant sur Ctrl + O puis sur Entrée. Fermez l'éditeur en appuyant sur Ctrl + X.

Rendre le script exécutable, puis l'exécuter

Vous aurez probablement besoin de rendre le script exécutable afin que vous puissiez l'exécuter plus facilement. Sous Linux, cela signifie que vous devez donner au fichier script l'autorisation exécutable. Pour ce faire, exécutez la commande suivante dans le terminal, en le pointant sur votre script:

chmod + x ~ / myscript.sh

Pour exécuter le script, vous pouvez maintenant l'exécuter dans le terminal en tapant son chemin. Chaque fois que vous voulez lancer le script dans le futur, ouvrez simplement le shell Bash et tapez le chemin du script.

~ / myscript.sh

( Si le script est dans le répertoire courant, vous pouvez l'exécuter avec. /myscript.sh)

Comment travailler avec les fichiers Windows dans un script Bash

Pour accéder aux fichiers Windows dans le script, vous 'Vous devez spécifier leur chemin sous /mnt/ c, pas leur chemin Windows. Par exemple, si vous souhaitez spécifier le fichier C: \ Users \ Bob \ Downloads \ test.txt, vous devez spécifier le chemin /mnt/c/Users/Bob/Downloads/ test.txt. Consultez notre guide pour localiser les emplacements dans la coque Bash de Windows 10 pour plus de détails.

Comment intégrer des commandes Bash dans un script Batch ou PowerShell

Enfin, si vous avez un fichier batch ou un script PowerShell dans lequel vous souhaitez incorporer des commandes, vous pouvez exécuter les commandes Bash directement à l'aide de la commande bash -c.

Par exemple, pour exécuter une commande Linux dans une fenêtre Invite de commandes ou PowerShell, vous pouvez exécuter la commande suivante:

bash -c "commande"

Cette astuce vous permet d'ajouter des commandes Bash dans des fichiers batch ou des scripts PowerShell. La fenêtre de shell Bash apparaîtra lorsqu'une commande Bash est en cours d'exécution.

Pour créer un raccourci vers un script Bash depuis Windows, il suffit de créer un raccourci normal. Pour la cible du raccourci, utilisez la commande bash -c décrite ci-dessus et pointez-la sur le script Bash que vous avez créé.

Par exemple, vous pointez un raccourci sur "bash -c" ~ / myscript.sh "" pour exécuter le script d'exemple ci-dessus. Vous pouvez également exécuter cette commande à partir d'une invite de commande ou d'une fenêtre PowerShell.