在shell脚本中输出重定向到控制台,不反映实时

时间:2017-03-22 07:02:22

标签: shell

从另一个脚本中调用下标时,我遇到了一个奇怪的控制台输出问题。 下面是调用TestScript的主脚本。 TestScript是一个用perl编写的安装脚本,在安装过程中需要一些时间来执行和打印消息。 我的问题是,一旦安装完成并且脚本返回,被调用的perl脚本的输出才会显示在控制台上。

奇怪的是,我之前成功地使用了这种语法来调用shell脚本,并且它可以正常工作并且输出同时显示而无需等待下标返回。

我需要捕获脚本的输出,以便在安装成功时我可以grep。 我不控制perl脚本,也不能以任何方式修改它。 任何帮助将不胜感激。 提前谢谢。

#!/bin/sh
echo " Main script"
output=`/var/tmp/Packages/TestScript.pl | tee /dev/tty`
exitCode=$?
echo $output | grep -q "Installation completed successfully"

if [ $? -eq 0 ]; then
    echo "Installation was successful"
fi

echo $exitCode

0 个答案:

没有答案