accueil > Environnement & utilitaires > sh

sh : Exécution de scripts shell et interprétation de commandes

`sh` est un interpréteur de commandes compatible avec le shell Bourne. Il est utilisé pour exécuter des scripts ou pour traiter des commandes saisies interactivement. Sur la plupart des systèmes Linux, `/bin/sh` est un lien symbolique vers un autre shell tel que `bash` ou `dash`, fournissant un environnement d'exécution de scripts conforme à la norme POSIX.

Aperçu

`sh` est l'un des shells par défaut des systèmes Unix et Linux, utilisé pour l'exécution de scripts et le traitement interactif des commandes. Il adhère strictement à la norme POSIX, ce qui rend les scripts écrits pour `sh` avantageux pour maintenir une haute compatibilité sur divers systèmes.

Caractéristiques principales

  • Compatibilité POSIX : Fournit une base pour l'écriture de scripts shell standard
  • Exécution de scripts : Exécute une séquence de commandes stockées dans un fichier
  • Interprétation de commandes interactive : Traite les commandes saisies directement par l'utilisateur
  • Fourni par défaut : Préinstallé sur la plupart des systèmes Unix/Linux

Options principales

`sh` offre diverses options qui affectent la manière dont les scripts sont exécutés ou débogués.

Exécution et débogage de scripts

Commande générée :

Essayez de combiner les commandes.

Description:

`sh` Exécute la commande.

Essayez d'exécuter virtuellement les commandes avec l'IA en combinant les options ci-dessus.

Exemples d'utilisation

Exécution d'un fichier script

sh my_script.sh

Exécute un fichier script shell spécifié en utilisant `sh`.

Exécution directe d'une chaîne de commandes

sh -c "echo 'Hello from sh!' && ls -l"

Utilise l'option `-c` pour exécuter une chaîne de commandes entre guillemets avec `sh`.

Exécution d'un script en mode débogage

sh -x debug_script.sh

Utilise l'option `-x` pour suivre le processus d'exécution du script et déboguer.

Exécution de commandes depuis l'entrée standard

echo "ls -a" | sh

Exécute des commandes transmises via un pipe avec `sh`.

Quitter immédiatement en cas d'erreur

sh -e error_prone_script.sh

Configure le script pour qu'il se termine immédiatement si une erreur se produit.

Conseils et précautions

`sh` est un outil puissant, mais il est important de comprendre ses différences avec d'autres shells.

Lors de l'écriture de scripts

  • Il est recommandé de spécifier `#!/bin/sh` comme première ligne du script pour indiquer qu'il doit être exécuté par `sh`.
  • Les fonctionnalités étendues d'autres shells comme `bash` ou `zsh` (par exemple, les tableaux, la correspondance de motifs avancée, les conditions `[[ ... ]]`) peuvent ne pas fonctionner avec `sh`. Utilisez donc uniquement la syntaxe compatible POSIX.
  • L'option `-x` est très utile pour le débogage afin de comprendre le flux du script et de vérifier les valeurs des variables.

Compatibilité

Sur la plupart des distributions Linux, `/bin/sh` est un lien symbolique vers `dash` (pour les familles Debian/Ubuntu) ou `bash` (pour les familles Red Hat/Fedora). Par conséquent, un script `sh` s'exécute dans le mode de compatibilité POSIX du shell lié. Cela signifie qu'il peut se comporter différemment d'un script `bash`.


Commandes de la même catégorie