Сега се наложи, резултатите от няколко различни скрипта, да се записват като отделни редове на същия този текстови файл.
Здравей,
задачата е тотално грешно дефинирана. Ако говорим за асинхронен запис, може да пробваш с:
( ./script1 & ./script2 ) > file1
Това ще пренасочи изходите на двата скрипта към един файл, и двата ще пишат едновременно. Разбира се тук едновременно е доста разтеглено понятие, защото ОС-а може пре спокойно да раздели така ресурсите си, че първо да свърши пърия скрипт после втория ( или обратно ).
Ако говорим за синхронен, т.е. четем един ред изход от единия, после четем един ред изход от другия, ще ти трябва нещо по-сложно. Обаче е интересно как ще е направен синхронен output. Трябва едната нишка да block-ва всеки път когато се чака изход от другата. А може и без блок. Просто да взмимаш една линия от единия изход и една от другия и да ги записваш последователно... Примерно:
mkpipe p1
mkpipe p2
./script1 > p1&
./script2 > p2&
exec 4 < ./p1
exec 5 < ./p2
##Все още нищо не се изпълнява защото нишките блокират от pipe-овете
while read -u 4 line1 && read -u 5 line 2 ; do
echo line1 >> output.txt
echo line2 >> output.txt
done
Все пак искаме да знаем каква е целта. Набиването на команди като кълвач до никъде не води...
П.П.
Ся гледам проблема е решен. Щом това е било въпроса...