Anmelden

Archiv verlassen und diese Seite im Standarddesign anzeigen : Shellscript: read aus bestimmter Konsole



Kolme
14-02-2006, 12:52
Hallo zusammen,

mich würde interessieren, wie ich bei einem Shellscript mit dem read Befehl
aus einer bestimmten Konsole lesen kann (z.B. /dev/tty3).

Der Hintergrund ist folgender:

Ich lasse über UDEV ein Script ausführen, welches mir einen USB Stick mountet.
Deisem Script möchte ich einige Parameter übergeben(von der Tastatur).

Die Ausgabe leite ich in /dev/tty11 um, wenn ich das nicht mache, wird schlicht nix ausgegeben.

Hier Das Script:

#!/bin/bash

echo "Action = $ACTION" > /dev/tty11 & echo !$
echo "Script wird ausgeführt!" > /dev/tty11 & echo !$

if [ $ACTION = "add" ] ; then
mount /dev/sstick /mnt/stick //hier möchte ich z.B. $stick haben und die Variable von der Tastatur eingelesen.
echo "USB-Stick ist gemountet in: /mnt/stick " > /dev/tty11 & echo !$
fi

# Wenn Stick entfernt wird

if [ $ACTION = "remove" ] ; then
echo "Remove wurde erfolgreich betreten" > /dev/tty11 & echo !$
fi

Hoffe ihr könnt mir da ein wenig weiterhelfen

MfG, Kolme

ninguno
14-02-2006, 13:27
damit gehts nicht?
read stick < /dev/tty3

Kolme
14-02-2006, 14:13
Leider nein.
Gibt es eine Möglichkeit ein Script zu zwingen, komplett auf einer Bestimmten Konsole zu laufen?

Der read Befehl wir ständig übergangen.

Habe mir hierfür ein Testscript angelegt

#!/bin/bash
echo "losgehts" // wird nirgens angezeigt
echo "jetzt aber" > /dev/tty11 // wird auf Konsole11 angezeigt
read xxx < /dev/tty3 // ein Eingabeprompt taucht nie auf
echo "Ausgabe: $xxx" > /dev/tty11 // hier erscheint nur "Ausgabe:"
// auf Konsole 11
Liegt das an UDEV ???

Mfg

Kolme
17-02-2006, 14:58
Hi,

ich habe mal pstree eingetippt, während ich den USB Stick eingesteckt habe.

Da stand dann so was:

udevd-----udev-----MeinScript.sh-----sleep

Daraus schließe ich, dass mein Script quasi als Prozess läuft und deswegen
der read-Befehl übergangen wird.
Starte ich das Script dagegen "händisch"
sieht pstree so aus:

bash-----bash-----MeinScript------sleep

und es hält an um die Eingabe entgegen zu nehmen.

Jetzt ist die Frage, wie kann ich über udev erreichen, dass mein Script sozusagen händisch auf der tty1
ausgeführt wird??

MfG, Kolme