找回密码
 立即注册
快捷导航

LINUX命令行脚本编程的一个小技巧

[复制链接]
韭菜 2023-8-15 01:39:55 | 显示全部楼层

如果是长时间运行跑循环,

那么,在每个循环的刚开始的时候,输出 \x1b[2K\r

然后,再输出其他的信息,

这个循环里可能会有两种情况,一是有重点信息需要输出,一种是不需要输出重要信息。

那么,只需要在,需要输出重要信息的时候,输出\n,这行信息会被保留,否则的话,会在下一次循环,被\x1b[2K\r覆盖掉。

不知道说的够明白了没有。

一个简单的演示:

<?php
$clear = "\x1b[2K\r";
for ($i=0; $i < 100; $i++) {
    echo $clear;
    $date = date("Y-m-d H:i:s");
    if(rand(0, 20) == 0){
        echo "[$date] got something($i)\n";
    }else{
        echo "[$date] $i (skip)";
    }
    usleep(100000);
}

疑问:就是每次清屏再从头输出?
回答:
\x1b[2K 的意思是清除所在行的所有内容
\r 是把光标移动回当前行的开头
这两个连起来用就是“清屏再从头输出”,只清除当前行

已经用了好些年了,正好解决了前面这个MJJ的需求

怎样知道python脚本是在运行状态
python脚本放在本地一直运行
因为这个程序可能要几十分钟或者更长时间才会有输出
但又不想打印出一堆文字或者时间占满屏幕
你们一般怎么处理
好知道程序确实在运行没有停止
比较cool一点的脚本有没有?
我是指在原来的脚本里面加入什么代码
自动打印出来比较酷的显示在屏幕
显示程序正在运行状态
回复:nohup & 和 ps | grep python
回复:ps -ef | grep python

也就是:

既知道程序的运行状态(也就是每次循环都输出了信息)

也不要让过多的无用信息把屏幕给占了(如果当前循环的信息无用,就在下次循环给覆盖掉)

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

温馨提示

关于 注册码 问题

      由于近期经常大量注册机器人注册发送大量广告,本站开启免费入群领取注册码注册网站账号,注册码在群公告上贴着...

关于 注册码 问题

      由于近期经常大量注册机器人注册发送大量广告,本站开启免费入群领取注册码注册网站账号,注册码在群公告上贴着...

Archiver|手机版|小黑屋|DLSite

GMT+8, 2024-11-21 19:53

Powered by Discuz! X3.5 and PHP8

快速回复 返回顶部 返回列表