Startpagina > Omgeving & hulpmiddelen > sh

sh: Shell-scriptuitvoering en commando-interpretatie

`sh` is een Bourne shell-compatibele commando-interpreter. Het wordt gebruikt om scripts uit te voeren of om commando's interactief te ontvangen en te verwerken. Op de meeste Linux-systemen is `/bin/sh` een symbolische link naar een andere shell zoals `bash` of `dash`, en biedt het een scriptuitvoeringsomgeving die voldoet aan de POSIX-standaard.

Overzicht

`sh` is een van de standaard shells op Unix- en Linux-systemen en wordt gebruikt voor scriptuitvoering en interactieve commando-verwerking. Omdat het strikt voldoet aan de POSIX-standaard, is het gunstig om scripts geschreven in `sh` te gebruiken voor hoge compatibiliteit op verschillende systemen.

Belangrijkste kenmerken

  • POSIX-compatibiliteit: Biedt een basis voor het schrijven van standaard shell-scripts
  • Scriptuitvoering: Voert een reeks commando's uit die in een bestand zijn opgeslagen
  • Interactieve commando-interpretatie: Ontvangt en verwerkt commando's rechtstreeks van de gebruiker
  • Standaard systeemvoorziening: Standaard geïnstalleerd op de meeste Unix/Linux-systemen

Belangrijkste opties

`sh` biedt verschillende opties die de manier waarop scripts worden uitgevoerd of gedebugd, beïnvloeden.

Scriptuitvoering en debugging

Gegenereerde opdracht:

Probeer de opdrachtcombinaties.

Uitleg:

`sh` Voer het commando uit.

Combineer deze opties en voer de opdracht virtueel uit met de AI.

Gebruiksvoorbeelden

Scriptbestand uitvoeren

sh my_script.sh

Voert het opgegeven shell-scriptbestand uit met behulp van `sh`.

Commando-string direct uitvoeren

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

Voert een door aanhalingstekens omsloten commando-string uit met `sh` met behulp van de `-c` optie.

Script uitvoeren in debugmodus

sh -x debug_script.sh

Traceert het uitvoeringsproces van het script en debugt met behulp van de `-x` optie.

Commando's uitvoeren van standaardinvoer

echo "ls -a" | sh

Voert commando's uit die via een pipe worden doorgegeven met `sh`.

Onmiddellijk beëindigen bij een fout

sh -e error_prone_script.sh

Beëindigt onmiddellijk als er een fout optreedt in het script.

Tips & Aandachtspunten

`sh` is een krachtig hulpmiddel, maar het is belangrijk om de verschillen met andere shells te begrijpen.

Bij het schrijven van scripts

  • Het is aan te raden om `#!/bin/sh` aan het begin van een script te plaatsen om aan te geven dat het script met `sh` moet worden uitgevoerd.
  • Extensies van andere shells zoals `bash` of `zsh` (bijv. arrays, geavanceerde patroonherkenning, `[[ ... ]]` voorwaardelijke expressies) werken mogelijk niet in `sh`, dus gebruik alleen POSIX-compatibele syntaxis.
  • De `-x` optie is erg nuttig bij het debuggen om de flow van het script te begrijpen en variabelen te controleren.

Compatibiliteit

Op de meeste Linux-distributies is `/bin/sh` een symbolische link naar `dash` (Debian/Ubuntu-gebaseerd) of `bash` (Red Hat/Fedora-gebaseerd). Daarom worden `sh`-scripts uitgevoerd in de POSIX-compatibele modus van de gelinkte shell. Dit betekent dat het gedrag kan verschillen van `bash`-scripts.


Hétzelfde categoriecommando