gpt4 book ai didi

python - 尾文件直到进程退出

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:48:02 25 4
gpt4 key购买 nike

查看 superuser 的答案.

我正在尝试对其进行修改以监听多个字符串并回显自定义消息,例如; '你的服务器启动成功'等

我也在尝试将它附加到另一个命令,即 pip

wait_str() {
local file="$1"; shift
local search_term="Successfully installed"; shift
local search_term2='Exception'
local wait_time="${1:-5m}"; shift # 5 minutes as default timeout

(timeout $wait_time tail -F -n0 "$file" &) | grep -q "$search_term" && echo 'Custom success message' && return 0 || || grep -q "$search_term2" && echo 'Custom success message' && return 0

echo "Timeout of $wait_time reached. Unable to find '$search_term' or '$search_term2' in '$file'"
return 1
}

我想到的用法是:

pip install -r requirements.txt > /var/log/pip/dump.log && wait_str /var/log/pip/dump.log

澄清一下,我想让 wait_str 在 pip 退出时停止拖尾,无论成功与否。

最佳答案

以下是一般答案,tail 可以替换为任何导致行流的命令。

如果不同的字符串需要不同的操作,那么使用以下:

tail -f var/log/pip/dump.log |awk '/condition1/ {action for condition-1} /condition-2/ {action for condition-2} .....' 

如果多个条件需要对它们执行相同操作,请使用 OR 运算符将它们分开:

tail -f var/log/pip/dump.log |awk '/condition-1/ || /condition-2/ || /condition-n/ {take this action}'

根据评论:单个 awk 可以做到这一 pip 。

tail -f /path/to/file |awk '/Exception/{ print "Worked"} /compiler/{ print "worked"}'  

tail -f /path/to/file | awk '/Exception/||/compiler/{ print "worked"}' 

或如果找到匹配则退出

tail -f logfile |awk '/Exception/||/compiler/{ print "worked";exit}'

关于python - 尾文件直到进程退出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39568941/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com