¿Cómo leer stdin cuando no se pasan argumentos?

La secuencia de comandos no funciona cuando quiero usar la entrada estándar cuando no se pasan argumentos (archivos). ¿Hay alguna manera de usar stdin en lugar de un archivo en este código?

Intenté esto:

if [ ! -n $1 ] # check if argument exists
   then
   $1=$(</dev/stdin)  # if not use stdin as an argument
   fi

var="$1"
while read line
   do
   ...                # find the longest line
   done <"$var"

Respuestas a la pregunta(4)

Su respuesta a la pregunta