[megoldva] tee a stdoutra

#!/bin/sh
...
echo $a"/"$b | bc -l

Szeretném magát az $a, $b-t is látni, nemcsak a végeredményt. Van valami olyan megoldás, amivel (a kiírás ismétlése nélkül) meg tudom jeleníteni a bc-nek átadandó karakterláncot? Valami "tee"-szerűség közbeiktatásra gondoltam, de az épp, hogy fájlba irányít.

Hozzászólások

bocs, hogy beleoffolok, de kicsit temaba vag:

bash scriptben belul szeretnem elerni azt, hogy a file-ban levo kimenet menjen stdout-ra IS *es* egy logfile-ba IS.

valakinek van tippje? barhogy vakaroztam, vagy csak kulso file-ba ment, vagy csak stdout-ra.

exec + tee kulonbozo perverz kombinacioval probalkoztam.

a lenyeg, hogy a bash scripten belul szeretnem, nem pedig ugy, hogy mindenele egzotikus parametereket adok neki!

koszi

t

tegyuk fel, van egy bash scriptem, az egszeruseg kedveert pl egy date parancsot futtatna.

tehat ./akarmi.sh-ra azt szeretnem, ha a benne levo date parancs kimenete latszodna stdout-on es az akarmi.log file-ban is.

a legutolso verziom ez volt:

{
date
} | tee akarmi.log, de ennel szerintem van szebb is.

t

A konkrét példádból értettem meg, hogy nem csak egyes parancsokat, hanem a teljes szkript tartalmának eredményét szeretnéd átirányítani.

Mindkét megoldásod valid, és szebbet nem tudok, legfeljebb mást, egy harmadikat:



function do_everything {
   cmd1
   cmd2
   ...
}

do_everything 2>&1 | tee $mylogfile

A stdout ugye pont az, amit a bc elkap, de miért nem jó a stderr, ha "csak" debuggolni szeretnél?


echo  "1 + 2" | tee /dev/stderr | bc -l
1 + 2
3