Bash: redireciona a entrada padrão dinamicamente em um script

Eu estava tentando fazer isso para decidir se redirecionar stdin para um arquivo ou não:

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

Mas isso não funciona porque quando a variável $ input é "& 0", o bash interpreta como um nome de arquivo.

No entanto, eu poderia apenas fazer:

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

O problema é que ./myScript é na verdade uma longa linha de comando que eu não quero duplicar, nem quero criar uma função para ela, porque ela também não é longa (não vale a pena).

Então me ocorreu fazer isso:

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

Mas isso requer a execução de mais um comando e um pipe (ou seja, um subshell).
Existe outra maneira mais simples e eficiente?

questionAnswers(7)

yourAnswerToTheQuestion