linux终端滚动条,Linux终端显示下载进度

在Linux的终端下更新、下载、安装工具时,会有一个类似68%这样动态变化的进度值,这是如何做到的呢

我首先想到了清屏

Turbo中可以使用clrscr(),头文件canio.h

Dev-C++中可以使用windows.h中的system(“cls”);

但是终端那么多内容,不可能全部删除,再重新输出吧,效率特别低不说,执行一次cls,会将终端所有的内容清除,根本不可能再重新输出。

linux下的clear命令,是将能看到的这一“页”屏幕翻过去,你还可以通过滚动条查看历史记录。

所以我们看到的那些更新或下载进度的实现不可能是上面这种方法。

在网上查了查,原来只用一条简单的语句就可以实现,而且还是C语言最简单的函数,准确的说是一个字符”\r”

printf(“\r”);

在printf()第一个参数最后加上”\r”字符,下一次的输出就会覆盖这一行。

更新示例

#include

#include

int main()

{

int i;

printf("downloading SwordGame from onestraw.net...\n");

for(i=0; i<=100; i++)

{

printf("finish %d%%...\r",i);

Sleep(100);

}

printf("\ndone\n");

return 0;

}

Linux系统中,你可以通过调整历史记录缓冲区大小或者使用命令行提示符配置项来控制终端显示的信息条数。这里主要讨论几个相关的设置: 1. **控制历史记录**:`history` 命令的显示条数由环境变量 `HISTSIZE` 控制,默认情况下,该值设为1000行。如果你想增加或减少显示的历史记录,可以在`.bashrc`或`.bash_profile`等配置文件中修改此变量。例如,增加到2000行: ```sh export HISTSIZE=2000 ``` 2. **改变PS1提示符**:`PS1` 变量控制了每个命令提示符的样式,包括显示的信息长度。你可以自定义PS1来限制每行显示的字符数。比如,`"\n\w{%d/%m/%y %H:%M:%S} $"` 这样的格式可以控制时间和当前目录的信息,而`%*`可以显示最近输入的命令的前几个字符。如果想只显示部分命令,可以在PS1中调整这一部分。 3. **使用PAGER设置**:如果你希望查看历史命令分页显示,可以通过`export PAGER='less -RSXFX'`将默认的分页程序`more`改为`less`,然后可以使用`man less`了解更多关于`less`的页控选项,如`set history=500`可以设置每屏最多显示500行。 4. **限制屏幕滚动条**:有些终端支持设置滚动条的最大长度,例如在`tmux`中,你可以设置`setw -g scroll-bar-style auto`来自动调整滚动条,或者直接指定滚动条的可见行数。 注意,以上设置可能会影响到交互性和历史记录的保存,所以选择适合自己的配置是很重要的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值