Wat is 3/5 leeuw, 1/2 stekelmuis en 1/5 nerts?
Oplossing: leeuw + stekelmuis + nerts = leesteken
We nemen met andere woorden drie van de vijf (
Een woord
Een breuk is de onuitgewerkte deling van een getal
De stringvoorstelling van een breuk met teller
We formuleren een vraag in een tekstbestand waarvan elke regel bestaat uit een woordbreuk: de stringvoorstelling van een breuk in zijn meest eenvoudige vorm, gevolgd door een spatie en een woord. Zo correspondeert de vraag uit de inleiding met het volgende bestand:
3/5 leeuw 1/2 stekelmuis 1/5 nerts
Elke woordbreuk van een woord
Schrijf een bash shell script platypus waaraan een tekstbestand met een vraag moet doorgegeven worden. Daarvoor zijn er twee opties:
ofwel wordt de padnaam van het bestand als argument aan het script doorgegeven
ofwel wordt het bestand gekoppeld aan de stdin van het script
Het script moet het antwoord op de vraag uitschrijven naar stdout. Daarbij moet het script de volgende foutafhandeling voorzien:
als er meer dan één argument wordt doorgegeven, dan moet het script een gepaste boodschap uitschrijven naar stderr en eindigen met exit status 1
als het enige argument dat wordt doorgegeven geen padnaam is van een gewoon leesbaar bestand, dan moet het script een gepaste boodschap uitschrijven naar stderr en eindigen met exit status 2
Zie onderstaande voorbeeldsessie voor wat we telkens bedoelen met een gepaste boodschap die moet uitgeschreven worden naar stderr.
In onderstaande voorbeeldsessie gaan we ervan uit dat de tekstbestanden question.01.txt2, question.02.txt3 en question.03.txt4 voorkomen in de huidige directory, en dat er geen bestand unknown.txt voorkomt in de huidige directory.
$ platypus question.01.txt5 question.02.txt6
Syntax: platypus [file]
$ echo $?
1
$ platypus unknown.txt
platypus: could not read file "unknown.txt"
$ echo $?
2
$ platypus question.01.txt7
wallpaper
$ echo $?
$ platypus < question.02.txt8
CARTRIDGE
$ cat question.03.txt9 | platypus
Manchester
Qua uitzicht lijkt het vogelbekdier alsof Moeder Natuur Frankenstein gespeeld heeft met stukjes vogel, reptiel en zoogdier. Maar ook uit zijn genoom — dat sinds januari 2021 volledig in kaart gebracht werd — blijkt dat het vogelbekdier een vreemde mix heeft van genen uit verschillende klassen van gewervelden.