yo estaba tratando de hacer esto para decidir si se debe redirigir la entrada estándar a un archivo o no:Bash: redirigir la entrada estándar de forma dinámica en un script
[ ...some condition here... ] && input=$fileName || input="&0"
./myScript < $input
Pero eso no funciona porque cuando la variable de entrada es $ "& 0", bash lo interpreta como un nombre de archivo.
Sin embargo, sólo podía hacer:
if [ ...condition... ];then
./myScript <$fileName
else
./myScript
El problema es que ./myscript es en realidad una línea de comandos desde hace tiempo que no quiero duplicar, ni quiero crear una función para él porque tampoco es demasiado largo (no 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 un tubo (es decir, un subnivel).
¿Hay alguna otra manera que sea más simple y más eficiente?
siempre vale la pena la creación de funciones. –
Nunca diga "siempre". Las funciones agregan un nivel de abstracción que no siempre es deseable. – GetFree
Quizás. En este caso, creo que es deseable. –