Shell: read, nur falls stdin nichtleer? (UNIX)

Hallo,
ich möchte in einem Shell Skript Variablen mit Werten aus stdin belegen - sofern dort etwas liegt.
Das Problem, das ich habe ist, wenn ich einfach ein „read x“ aufrufe, um „x“ zu belegen, wartet dieser Aufruf auf manuelle Werteeingabe am Terminal, falls stdin leer ist.

Jetzt suche ich etwas in der Art:

if [_stdin nicht leer_] ; then
 read x
 else
 x=default
fi

Gibt es da eine sinnvolle Möglichkeit?
Danke,
Michael

Soweit, dass es theorethisch den „-t“ Parameter für read gibt, der mir erlauben würde, nur eine Sekunde auf Eingab zu warten, bin ich mittlerweile.

Dummerweise habe ich eine ältere Unix-Version, so dass die Shell diesen Parameter nicht erkennt, d.h. das hier fällt flach:

 read -t 1 x