整合 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 命令
- 还能整点什么呢?🤔
- 下次再说👋
- 蓝桥 ->https://www.lanqiao.cn/course…
- github->https://github.com/overmind19…
- gitee->https://gitee.com/overmind198…
- 视频 ->https://www.bilibili.com/vide… 作者:oeasy