shAan de slag met sh


Opmerkingen

sh is geen enkele shell. Het is eerder een specificatie met de POSIX-besturingssysteemstandaard voor hoe een shell zou moeten werken. Een script dat zich richt op deze specificatie kan worden uitgevoerd door elke POSIX-compatibele shell, zoals

  • bash
  • ksh
  • ash en zijn derivaten, zoals dash
  • zsh

In een POSIX-compatibel besturingssysteem verwijst het pad /bin/sh naar een POSIX-compatibele shell. Dit is meestal een shell met functies die niet in de POSIX-standaard te vinden zijn, maar wanneer deze als sh , beperkt deze zich tot de POSIX-compatibele subset van zijn functies.

Referenties

Echo-draagbaarheid

$ for shell in ash bash dash ksh ksh93 zsh; do
>     $shell -c "echo '\\\\'$shell'\\\\'"
> done
\\ash\\
\\bash\\
\dash\
\pdksh\
\\ksh93\\
\zsh\
 

'echo' kan alleen consistent worden gebruikt, voor alle implementaties, als de argumenten geen backslashes bevatten (reverse-solidi) en als het eerste argument niet begint met een streepje (koppelteken-min). Veel implementaties staan extra opties toe, zoals -e , hoewel de enige toegestane optie -n (zie hieronder).

Van POSIX :

Als de eerste operand -n is, of als een van de operanden een teken bevat, zijn de resultaten door de implementatie gedefinieerd.

Hallo Wereld!

Met echo :

$ echo Hello, world!
Hello, world!
 

Met printf :

$ printf 'Hello, world!\n'
Hello, world!
 

Als een bestand:

#!/bin/sh
printf '%s\n' 'Hello, world!'