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