Zoek:

Bash Read Spatie

In een bash-script wordt een eindloze loop gebruikt. Hoe kan je uit die loop springen door de spatiebalk in te drukken?

Daarvoor gebruik je het read-command met de juiste opties. Probleem is dat dit commando de spatie ziet als een scheidingsteken, het wordt niet gezien als input. Dat doe je door de variabele IFS leeg te maken. Hier is een programmavoorbeeld:

#!/bin/bash
echo Druk een toets
IFS=""        # geen field seperator, zodat de spatie ook een normale toets is
while true    # begin een eindloze loop
    do
        read -s -n1 -t1 TOETS   # wacht 1 sec tot 1 toets gedrukt
        [ "$TOETS" ] && break   # test op geen NULL waarde
        echo Nog steeds geen toets gedrukt
    done
echo Er werd een $TOETS gedrukt
#eof#

Zet dit in een bestand, zet het execute-bit aan en probeer het uit.

Pagina laatst gewijzigd op 6 oktober 2018 om 13:34