Bash: redirigir la entrada estándar dinámicamente en un script

Estaba intentando hacer esto para decidir si redirigir stdin a un archivo o no:

[ ...some condition here... ] && input=$fileName || input="&0"
./myScript < $input

Pero eso no funciona porque cuando la variable $ input es "& 0", bash lo interpreta como un nombre de archivo.

Sin embargo, yo podría hacer:

if [ ...condition... ];then
    ./myScript <$fileName
else
    ./myScript

El problema es que ./myScript es en realidad una larga línea de comandos que no quiero duplicar, ni tampoco quiero crear una función para ella porque tampoco es tan larga (tampoco vale la pena).

Entonces se me ocurrió hacer esto:

[ ...condition... ] && input=$fileName || input=  #empty
cat $input | ./myScript

Pero eso requiere ejecutar un comando más y una canalización (es decir, una subshell).
¿Hay alguna otra forma que sea más simple y más eficiente?

Respuestas a la pregunta(7)

Su respuesta a la pregunta