stavo cercando di fare questo per decidere se reindirizzare stdin in un file oppure no:Bash: standard input in modo dinamico in uno script
[ ...some condition here... ] && input=$fileName || input="&0"
./myScript < $input
Ma questo non funziona, perché quando la variabile $ input è "& 0", bash lo interpreta come un nome file.
Tuttavia, ho potuto solo fare:
if [ ...condition... ];then
./myScript <$fileName
else
./myScript
Il problema è che ./myScript è in realtà una riga di comando lunga che io non voglio duplicare, né voglio creare una funzione per esso perché non è neanche così lungo (non ne vale la pena).
Poi venne in mente di fare questo:
[ ...condition... ] && input=$fileName || input= #empty
cat $input | ./myScript
Ma che richiede di eseguire un altro comando e un tubo (cioè una subshell).
C'è un altro modo più semplice ed efficiente?
vale sempre la pena la creazione di funzioni. –
Non dire mai "sempre". Le funzioni aggiungono un livello di astrazione che non è sempre desiderabile. – GetFree
Forse. In questo caso penso che sia desiderabile. –