Dobrý večer,
píšu skript, kterému budu předávat jeden z parametrů dvěma různými způsoby: jako poziční parametr a přesměrováním výstupu jiného skriptu.
To by nebyl až tak problém.
$cat stdin.sh
#!/bin/bash
if [ "$1" ]; then var=$1; else var=`cat`; fi
echo '"'$var'"'
$ ./stdin.sh AAA
"AAA"
$ echo BBB | ./stdin.sh
"BBB"
V některých situacích však tento parametr nebude potřeba vůbec.
Můžu to sice obejít takto:
$ echo | ./stdin.sh
nebo přidáním přepínače např.
$ ./stdin.sh --no-param
ale to se mi moc nelíbí.
Napadlo mě, jestli by nebylo možno u čtení stdin nějak jednoduše zjistit, jestli je na něj přesměrován výstup od jinud a číst jej jen pokud ano.
Je to vůbec možné ? Děkuji za radu.