我有:
ScriptA。 sh 调用scriptB。 sh 调用ScriptC。 py
ScriptA等待ScriptB等待ScriptC重播成功。
如果他的操作没有成功(常规输出),python每3分钟返回一个字符串。
这些输出被聚合到ScriptB的缓冲区中。我想将它们动态地重定向到ScriptA的日志。
有可能吗?
答案 0 :(得分:2)
我会使用tee
:
tee - 从标准输入读取并写入标准输出和文件
例如,在ScriptB.sh中:
while read someLine; do
...
done < <( ScriptC.py | tee -a logfileOfScriptA )
我不知道您是如何调用脚本的,但这是tee
的用途。
已编辑 - 我想@Charles Duffy会说这样的话,如果你想得到幻想:
$ cat ScriptA.sh
#!/bin/bash
LOGFILE=ScriptA.out
exec 5>>$LOGFILE
./ScriptB.sh
$ cat ScriptB.sh
#!/bin/bash
echo 'Hello, world!' | tee >(cat - >&5)
$ ./ScriptA.sh
Hello, world!
$ cat ScriptA.out
Hello, world!
答案 1 :(得分:0)
Tx获得所有帮助!
我通过安装:“yum install expect”解决了这个问题,其中ScriptB正在运行(不是同一台服务器),然后实现以下内容:
ScriptA{
unbuffer /path/to/ScriptB
}