Spousteni skriptu ze skriptu a cteni ze stdin

Zdenek Janis janis na alberon.cz
Středa Květen 2 17:52:00 CEST 2007


Dobry den,
potebuji vyhledat (podle regex vyrazu) vsechny skripty, ty pak postupne 
spustit a to tak, aby spustene skripty mohli cist ze stdin hlavniho 
skriptu a pritom mohl v hlavnim skriptu odchytit vystupy a navratove 
kody z jednotlivych spustenych skriptu.

Zatim jsem to vyresil takto (zjednodusene):

*** soubor "sbase.sh":

#!/bin/bash

Y=0;
while read X; do
     let Y++;
     echo -n "$Y: \"$X\" -> ";
     if LOG=$(./$X $* 2>&1); then
         echo "ok";
     else
         echo "error";
     fi;
     echo "$LOG";
     echo "";
done < <(find ./ -iregex '^\./s[0-9]+\.sh$' | sort);

echo "...konec...";


*** soubor "s01.sh" a "s02.sh":

#!/bin/bash

echo "PAR: \"$@\"";
#read -t 10 LL;
echo "READ LL: \"$LL\"";

exit 0;

*** spusteni:
(echo "t1"; echo "t2";) | ./sbase.sh par1 par2

*** vystup (plati bez read v "s01.sh" a "s02.sh"):

1: "./s01.sh" -> ok
PAR: "par1 par2"
READ LL: ""

2: "./s02.sh" -> ok
PAR: "par1 par2"
READ LL: ""

...konec...

Castecne to dela co potrebuji, tedy jsem schopen zpracovat jak vystupy 
ze skriptu "s01.sh" a "s02.sh", tak navratovy kod. Ve skriptech mam 
pristup k parametrum predanym hlavnimu skriptu "sbase.sh", ale uz 
nedokazu spracovat (nacist) ve skriptech "s01.sh" a "s02.sh" data, ktera 
poslu na stdin hlavnimu skriptu. Je na to nejake reseni aniz bych musel 
v hlavnim skriptu "sbase.sh" nacit stdin do promenne/souboru a pak to 
poslat do spusteneho sktiptu?

Dekuji za pripadne rady/namety.

-- 
     Zdenek Janis



Další informace o konferenci Linux