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