整合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 %
执行
:w
保存|
并且执行!sh %
用外部命令sh
执行这个test.sh
- 注意这里使用的外部程序不是python
- 而是sh
- sh 就像 python3 是外部命令名
- % 代指test.sh
- 就像以前的sleep.py
- 是文件名
编辑
- 确实输出了三次时间
- 但我还想把字变大怎么办呢?
figlet变大
show_time.py
的输出字符串
- 直接通过
管道|
给到figlet
- 其中
show_time.py
程序
- 只负责输出时间
- 输出的结果
- 通过
管道|
给figlet
- 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.sh
vi loop.sh
- 输入以下内容
for a in {1..10}
do
echo $a
done
- 尝试运行此文件
保存并运行
编辑
:w
保存当前文档:!sh %
运行当前shell
:w|!sh %
保存并运行当前shell
- 执行的结果如下
编辑
- 成功循环了起来
- 光是循环还不够
- 还需要延迟
- 怎么办?
搜索延迟
编辑
for a in {1..10}
do
echo $a
sleep 1s
done
编辑
:w|!sh %
- 保存并运行当前
shell
- 延迟成功
- 接下来需要输出时间了
- 而且是通过管道给
figlet
的大时间
整合 python
- 把原来数字的部分换成执行命令
python3 show_time.py | figlet
for a in {1..10}
do
python3 show_time.py | figlet
sleep 1s
done
- 输出成功
- 确实可以刷新
- 但是一屏幕上
- 有两个时间
- 很乱!
编辑
- 我想只要一个!
- 少则得多则惑!
- 可以清一下屏幕么?
尝试清屏
编辑
for a in {1..10}
do
clear
python3 sleep.py | figlet
sleep 1s
done
- 先去总结一下
总结
- 这次我们研究了shell脚本的编程
- 并且在shell中实现了
- 循环语句
- 延迟命令
- 清屏命令
- python命令
- figlet命令
编辑
- 还能整点什么呢?🤔
- 下次再说👋
- 蓝桥->oeasy 教您玩转 python_Python - 蓝桥云课
- github->GitHub - overmind1980/oeasy-python-tutorial: 良心的 Python 教程,面向零基础初学者简明易懂的 Python3 入门基础课程。在linux+vim生产力环境下,从浅入深,从简单程序学到网络爬虫。可以配合蓝桥云上实验环境操作。
- gitee->oeasy教您玩转python教程: 面向零基础初学者的简明易懂的 Python3 入门课程,对没有编程经验的同学也非常友好。在vim下从浅入深,逐步学习。从基础入门学习到爬虫。
- 视频->[oeasy]教您玩转python零基础学python入门教程(合集)_哔哩哔哩_bilibili 作者:oeasy