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: