Commande Bash sh : découvrez la différence entre Bash et Shell
La commande bash sh est un élément fondamental dans le monde Linux. De nombreux nouveaux utilisateurs, et même certains utilisateurs expérimentés, se retrouvent souvent confus quant à la différence entre bash et sh. Bien qu'ils soient tous deux des interpréteurs de commandes utilisés pour exécuter des commandes sous Linux, ils ont chacun leurs fonctionnalités et leurs cas d'utilisation uniques. Dans ce guide, nous explorerons les subtilités de la commande bash sh, comparerons bash et shell et plongerons dans des exemples qui illustrent les différences et les cas d'utilisation spécifiques de chacun.
La commande sh est un outil important pour exécuter des scripts shell de base, souvent utilisés dans les systèmes plus anciens ou à des fins de portabilité. À l'inverse, bash (Bourne Again Shell) offre une expérience plus riche en fonctionnalités et plus conviviale. Comprendre la différence entre bash et sh et savoir quand utiliser chacun peut améliorer la productivité et l'efficacité des scripts.
Dans ce didacticiel, vous apprendrez :
- Les bases de la commande bash sh
- Les différences entre bash et shell
- Exemples d'utilisation de la commande sh sous Linux
- Comment exécuter des commandes sh dans des scripts bash
Comprendre la commande Bash sh
Sous Linux, la commande sh est utilisée pour exécuter des commandes dans un environnement shell de base. De nombreux utilisateurs rencontrent souvent des scripts commençant par #!/bin/sh
ou #!/bin/bash
. Ces lignes indiquent quel shell doit être utilisé pour interpréter le script. Alors que sh et bash sont utilisés pour exécuter des commandes shell, bash offre des fonctionnalités avancées telles que l'historique des commandes, l'expansion des accolades et des capacités de script améliorées.
Dans les exemples ci-dessous, nous verrons comment la commande sh Linux peut être utilisée dans différentes situations et comment elle interagit avec bash. Explorons les exemples plus en détail.
Exemple de commande sh de base : pour exécuter une commande simple à l'aide de
sh
, vous pouvez ouvrir votre terminal et taper :$ sh -c 'echo "Hello, World!"'
Utilisation de sh dans un script Bash : vous pouvez également appeler
sh
depuis un script Bash. Ceci est utile si vous souhaitez vous assurer qu'une certaine section du script s'exécute avec le shell de base pour la portabilité.#!/bin/bash sh -c 'echo "Running with sh"' echo "Running with bash"
Différence entre Bash et Shell : pour démontrer certaines différences entre
sh
etbash
, vous pouvez comparer la façon dont ils gèrent les fonctionnalités avancées telles que l'expansion des accolades.#!/bin/bash echo {A..Z}
$ sh -c 'echo {A..Z}'
Dans l'exemple ci-dessus,
bash
développera{A..Z}
pour afficher toutes les lettres de A à Z. Cependant,sh
pourrait ne pas prendre en charge cette syntaxe, en fonction de l'implémentation du système. Cela met en évidence une différence clé lors de l'écriture de scripts avec bash vs shell.Différences fondamentales entre Bash et Sh
QUAND CHOISIR BASH ET QUAND SH
Bash : utilisez Bash lorsque vous avez besoin de fonctionnalités de script avancées telles que des tableaux, des fonctions, la manipulation de chaînes et un large éventail de commandes intégrées. Bash est également préférable pour les scripts destinés à s'exécuter sur les systèmes Linux modernes, où Bash est le shell par défaut.Sh : choisissez sh lorsque la portabilité est critique, car sh est le shell le plus basique, compatible avec divers systèmes de type UNIX. Utilisez-le pour les scripts simples qui nécessitent une compatibilité maximale et des fonctionnalités minimales, que l'on trouve souvent dans des environnements plus anciens ou légers.
Exécuter des scripts avec sh : de nombreux scripts existants utilisent
sh
pour des raisons de compatibilité. Voici comment créer et exécuter un simple scriptsh
.$ cat > test_script.sh << 'EOF' #!/bin/sh echo "This script runs with sh" EOF
Après avoir enregistré le script, rendez-le exécutable et exécutez-le :
$ chmod +x test_script.sh ./test_script.sh
L'option -c
est utilisée pour passer une commande à sh
. Cet exemple affichera simplement « Hello, World ! » au terminal. Il s'agit d'une utilisation simple de sh pour exécuter une commande sur une seule ligne.
Dans cet exemple, la ligne sh -c 'echo "Running with sh"'
exécute une commande avec sh, et la ligne echo
suivante s'exécute avec bash. Cela peut aider à illustrer la différence entre les deux coquilles.
Cela affichera "Ce script s'exécute avec sh". Notez que le script commence par #!/bin/sh
, indiquant que sh doit être utilisé pour interpréter les commandes.
Conclusion
Comprendre la différence entre bash et sh est crucial pour un script efficace sous Linux. La commande sh Linux est souvent utilisée pour les scripts de base, tandis que bash fournit un environnement plus puissant et plus convivial. En sachant quand utiliser sh ou bash, vous pouvez écrire des scripts à la fois portables et riches en fonctionnalités. Que vous exécutiez sh dans bash ou que vous exécutiez simplement une ligne de commande sh, les exemples ci-dessus devraient fournir une image plus claire de leurs capacités et de leurs différences.