[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: wie ermitteln ob /dev/tty beschrieben werden kann



Hi Martin,

Martin Schulze <joey@infodrom.org> wrote:
>> Starte ich das Script per 'at', dann beschwert sich 'tee' über
>> ein nicht vorhandenes Gerät /dev/tty. Allerdings zeigt ein 
>> 'ls -l /dev/tty' innerhalb des Script das diese Datei vorhanden
>> ist.
>
>Mit welchen Berechtigungen?

Folgendes als at Job gestartet

--- start ----
#!/bin/sh
LOG=/tmp/testmoi.log
exec >$LOG 2>&1
id | cut -d" " -f -2
ls -l /dev/tty
--- end ------

liefert im log file

uid=1000(frank) gid=1000(frank)
crw-rw-rw-  1 root root 5, 0 2006-10-01 10:28 /dev/tty

>Generell gilt, daß /dev/tty jeweils dem aktuellen Terminal zugeordnet
>wird.  Das ist natürlich nur bei interaktivem Betrieb der Fall.
>Einem Cronjob oder Atjob ist in der Regel kein Terminal zugewiesen.

Das ist mir ja auch schon klar. ;-) Deshalb such ich ja nach einem Weg
herauszufinden ob hinter /dev/tty auch ein Terminal hängt.

>> Gib es eine bessere Lösung als folgendes vor dem 'exec ...'?
>> 
>> ....
>set +e
>> echo > /dev/tty
>> if [ $? -eq 0 ]
>> then
>>   # kann auf /dev/tty ausgeben
>> else
>>   # kann nicht auf /dev/tty ausgeben
>> fi
>set -e

Was bewirkt set +e/-e in dem Fall? Ich konnte keine Änderung
feststellen. Bekomme damit weiterhin die Ausgabe 
"/dev/tty: No such device or address" ins log file.

man ksh hat mich da auch nicht schlauer gemacht
-e      If a command has a non-zero exit status, execute the ERR
        trap,  if  set,  and  exit.  This mode is disabled while
        reading profiles.

>Wenn Du statt [ test verwendest, ist es von der Shell unabhängig, da
>/usr/bin/test verwendet wird.

Ich dachte die Benutzung wäre gleich. Weil auch die man pages
sich nicht unterscheiden.

Frank
-- 
Jeder Mensch bereitet uns auf irgend eine Art Vergnügen.
Der eine, wenn er ein Zimmer betritt,
der andere, wenn er es verlässt.



Reply to: