
Nehmen wir an, ich habe eine Datei mit Einträgen,
Datei:
user pts/1 2016-10-22 19:47 (ip)
user1 pts/2 2016-10-22 20:04 (ip)
user1 pts/3 2016-10-22 20:04 (ip)
ich möchte eine Schleife haben, bis der Benutzer eine Zahl zwischen 1-3 drückt (Anzahl der Zeilen in dieser Datei).
und wenn der Benutzer beispielsweise 1 eingibt, möchte ich, dass das System eine Nachricht an diesen bestimmten Punkt sendet (mit dem Befehl „write user pts/1“).
Ist das überhaupt irgendwie möglich? Ich habe keine Ahnung, wo ich anfangen soll.
Antwort1
Ich glaube, Sie machen die Dinge zu kompliziert.
So können Sie schnell eine Nummer anfordern und dann eine Nachricht an das Terminal senden:
#!/bin/bash
function getNumber()
{
pattern="[1-3]"
echo "Enter a number between 1 and 3"
read number
if [[ ! "$number" =~ $pattern ]]; then
echo "Wrong number"
getNumber
fi
}
getNumber
echo "Hello pts$number" > /dev/pts/$number
Ausführungsbeispiele unten:
./pts.sh
Enter a number between 1 and 3
0
Wrong number
Enter a number between 1 and 3
4
Wrong number
Enter a number between 1 and 3
1
Bei korrekter Eingabe ( 1
siehe oben) erhalte ich diese Ausgabe in /dev/pts/1
:
[maulinglawns@ArchLinux slask]$ tty
/dev/pts/1
[maulinglawns@ArchLinux slask]$ Hello pts1