[oeasy]python0035_ 整合shell编程_循环_延迟_清屏
整合shell编程
回忆上次内容
用
\r可以让输出位置回到行首
原位刷新时间
如果想要的是大字符效果
需要使用 figlet
但同时还希望能刷新

这可能吗?🤔
建立脚本
我们得熟悉一下
shell先新建一个test.sh
vi test.sh
python3 show_time.py python3 show_time.py python3 show_time.py
看起来就是把这个内容输出了 3 次

可以执行么?
尝试执行
注意执行细节

在vim的正常状态用
:w|!sh %执行注意这里使用的外部程序不是python
而是sh
sh 就像 python3 是外部命令名
% 代指test.sh
就像以前的sleep.py
是文件名
:w保存|并且执行!sh %用外部命令sh执行这个test.sh

确实输出了三次时间
但我还想把字变大怎么办呢?
figlet变大
show_time.py的输出字符串直接通过
管道|给到figlet其中
负责变大
通过
管道|给figlet只负责输出时间
show_time.py程序输出的结果
figlet

如果想要输出三个变大之后的时间
应该如何呢?
三次输出
修改test.sh
vi test.sh
编写以下文件
python3 show_time.py | figlet python3 show_time.py | figlet python3 show_time.py | figlet
尝试运行

运行结果

确实变大了
而且输出了三次
现在需要不只输出三次
而是无限多次不断刷新
应该怎么办呢?
尝试循环
无限多次肯定需要循环!
原来放在
python文件中的的循环和定时功能现在都需要放在
sh脚本文件里由
shell来控制延迟的节奏那问题来了
sh脚本文件如何进行循环?
搜索一下!


尝试根据这个修改
shell循环
在shell中
新编辑一个
loop.shvi loop.sh输入以下内容
for a in {1..10}do echo $adone
尝试运行此文件
保存并运行

:w保存当前文档:!sh %运行当前shell:w|!sh %保存并运行当前shell执行的结果如下

成功循环了起来
光是循环还不够
还需要延迟
怎么办?
搜索延迟

for a in {1..10}do echo $a sleep 1sdone

:w|!sh %保存并运行当前
shell延迟成功
接下来需要输出时间了
而且是通过管道给
figlet的大时间
整合 python
把原来数字的部分换成执行命令
python3 show_time.py | figlet
for a in {1..10}do python3 show_time.py | figlet sleep 1sdone
输出成功
确实可以刷新
但是一屏幕上
有两个时间
很乱!

我想只要一个!
少则得多则惑!
可以清一下屏幕么?
尝试清屏

for a in {1..10}do clear python3 sleep.py | figlet sleep 1sdone
先去总结一下
总结
这次我们研究了shell脚本的编程
并且在shell中实现了
循环语句
延迟命令
清屏命令
python命令
figlet命令

还能整点什么呢?🤔
下次再说👋
蓝桥->https://www.lanqiao.cn/courses/3584
github->https://github.com/overmind1980/oeasy-python-tutorial
gitee->https://gitee.com/overmind1980/oeasypython
视频->https://www.bilibili.com/video/BV1CU4y1Z7gQ 作者:oeasy

