我正在尝试构建一个bash脚本来运行Web服务器。我需要脚本在控制台中显示Web服务器的输出,直到控制台上出现特定字样,指示服务器初始化成功完成或发生某些错误。
我能够显示控制台输出,直到发生超时:
#!/bin/bash
(exec /opt/aspnetcore-runtime-3.0.0-linux-x64/dotnet /opt/app/Launcher.dll &) | (timeout --foreground 6 cat; cat > /dev/null &)
如果错误早于6秒钟发生,则Web服务器停止并且控制权返回到终端,这是所需的行为。
但是,如果Web服务器初始化在2秒内成功完成,则用户必须再等待4秒,直到脚本完成。一旦控制台上出现某些短语(例如SUCCESS INIT!
),我想将控件返回到终端。