| In Unix-shells (zoals bash, zsh, enz.) zijn positionele parameters speciale variabelen die de argumenten opslaan die aan een script of functie worden doorgegeven. Ze zijn genummerd, beginnend bij 1.
* `$1`:Bevat het eerste argument.
* `$2`:Bevat het tweede argument.
* `$3`:bevat het derde argument, enzovoort.
`$0` is een speciaal geval:het bevat de naam van het script of de functie zelf.
Voorbeeld:
Stel dat u een script heeft met de naam `my_script.sh` met de volgende inhoud:
``` bash
#!/bin/bash
echo "De scriptnaam is:$0"
echo "Het eerste argument is:$1"
echo "Het tweede argument is:$2"
```
Als je het zo uitvoert:
``` bash
./my_script.sh hallo wereld
```
De uitvoer zou zijn:
```
De scriptnaam is:./my_script.sh
Het eerste argument is:hallo
Het tweede argument is:wereld
```
Belangrijke overwegingen:
* Aantal argumenten: U hebt toegang tot argumenten tot het opgegeven aantal. Een poging om toegang te krijgen tot `$4` terwijl er slechts drie argumenten zijn opgegeven, zal resulteren in een lege string of een fout, afhankelijk van de shell en hoe het script is geschreven.
* Citaat: Correct citeren is van cruciaal belang als het gaat om argumenten die spaties of speciale tekens bevatten. Vermeld altijd uw positionele parameters wanneer u deze in opdrachten gebruikt, om problemen met het splitsen van woorden en het samenvatten van woorden te voorkomen. Bijvoorbeeld:`echo "$1"` is veiliger dan `echo $1`.
* `$@` en `$*`:Deze speciale variabelen bieden alternatieve manieren om toegang te krijgen tot alle positionele parameters. `$@` wordt uitgebreid naar elk argument afzonderlijk, tussen aanhalingstekens, terwijl `$*` wordt uitgebreid naar een enkele string die alle argumenten bevat. `$@` heeft over het algemeen de voorkeur vanwege de veiligere omgang met argumenten met spaties.
* `shift`:Het `shift`-commando verwijdert de eerste positionele parameter en verschuift de overige naar links. Dit is handig voor het sequentieel verwerken van argumenten.
In wezen zijn positionele parameters een fundamenteel mechanisme voor het doorgeven van gegevens aan Unix-shellscripts en -functies, waardoor flexibiliteit en herbruikbaarheid mogelijk worden. |