Waarden van shell-opties of positionele parameters instellen.
Schakelt shell-eigenschappen in/uit, of verandert waarden van positionele
parameters. Zonder opties of argumenten toont 'set' de namen en waarden
van alle gedefinieerde variabelen en functies, in een vorm die als invoer
hergebruikt kan worden. De volgende opties zijn beschikbaar (een '+' in
plaats van een '-' schakelt de betreffende eigenschap _uit_ i.p.v. in):
-a nieuwe of gewijzigde variabelen en functies automatisch exporteren
-B accoladevervanging uitvoeren (is standaard, b.v. a{b,c} -> ab ac)
-b beëindiging van een taak direct melden (i.p.v. na huidige opdracht)
-C omleiding van uitvoer mag gewone bestanden niet overschrijven
-E een 'trap' op ERR door laten werken in functies en dochterprocessen
-e de shell afsluiten zodra afsluitwaarde van een opdracht niet nul is
-f jokertekens voor bestandsnamen uitschakelen (geen 'globbing')
-H geschiedenisopdracht '!' beschikbaar stellen (standaard)
-h het volledige pad van opdrachten onthouden na eerste keer opzoeken
-k ook nakomende toewijzingen aan variabelen in de omgeving plaatsen
-m taakbesturing beschikbaar stellen (standaard)
-n opdrachten wel lezen maar niet uitvoeren ("droogzwemmen")
-o OPTIENAAM deze optie inschakelen (zie verderop voor de lange namen)
-P geen symbolische koppelingen herleiden bij opdrachten als 'cd' die
de huidige map wijzigen
-p geprivilegeerde modus: de bestanden aangeduid door ENV en BASH_ENV
worden genegeerd, functies worden niet uit de omgeving geïmporteerd,
en ook eventuele SHELLOPTS worden genegeerd; modus wordt automatisch
ingeschakeld als effectieve en echte UID of GID niet overeenkomen;
uitschakelen maakt dan effectieve UID en GID gelijk aan de echte
-T een 'trap' op DEBUG door laten werken in functies en dochterprocessen
-t afsluiten na het lezen en uitvoeren van één opdracht
-u het gebruik van niet-bestaande variabelen behandelen als een fout
-v invoerregel weergeven ("echoën") zodra deze gelezen is
-x elke opdracht met argumenten weergeven voordat deze wordt uitgevoerd
-- nakomende argumenten zijn positionele parameters; als er geen verdere
argumenten zijn, worden de bestaande positionele parameters gewist
- opties -v en -x uitschakelen; nakomende argumenten zijn positionele
parameters; maar zonder argumenten worden de bestaande niet gewist
De opties kunnen ook gebruikt worden bij het starten van de shell.
De huidige toestand van de eigenschappen is te vinden in $-. Eventuele
extra argumenten van 'set' worden begrepen als positionele parameters
en worden toegewezen aan $1, $2, ... $N.
De lange namen voor gebruik met optie -o (of +o) zijn:
allexport == -a (automatisch exporteren van nieuwen/gewijzigden)
braceexpand == -B (accoladevervanging uitvoeren)
emacs regelbewerkingsinterface in stijl van 'emacs' gebruiken
errexit == -e (shell afsluiten bij eerste fout)
errtrace == -E ('trap' op ERR overal laten gelden)
functrace == -T ('trap' op DEBUG overal laten gelden)
hashall == -h (gevonden pad van opdrachten onthouden)
histexpand == -H ('!'-opdracht beschikbaar stellen)
history opdrachtengeschiedenis beschikbaar stellen
ignoreeof Ctrl-D negeren; de shell niet afsluiten bij lezen van EOF
interactive-comments commentaar in interactieve opdrachten toestaan
keyword == -k (nakomende toewijzingen ook meenemen)
monitor == -m (taakbesturing beschikbaar stellen)
noclobber == -C (omleidingen geen bestanden laten overschrijven)
noexec == -n (opdrachten lezen maar niet uitvoeren)
noglob == -f (jokertekens uitschakelen)
nolog (herkend maar genegeerd)
notify == -b (beëindiging van een taak direct melden)
nounset == -u (niet-bestaande variabelen als een fout beschouwen)
onecmd == -t (afsluiten na uitvoeren van één opdracht)
physical == -P (fysieke paden volgen i.p.v. symbolische)
pipefail de afsluitwaarde van een pijplijn gelijkmaken aan die van
de laatste niet-succesvolle opdracht in de reeks, of aan
0 als alle opdrachten succesvol waren
posix de voorschriften van de POSIX-standaard strict volgen
privileged == -p (geprivilegeerde modus)
verbose == -v (elke invoerregel echoën)
vi regelbewerkingsinterface in stijl van 'vi' gebruiken
xtrace == -x (elke opdracht echoën)
De afsluitwaarde is 0, tenzij een ongeldige optie gegeven werd.