整合shell编程

回忆上次内容

  • \r
  • 可以让输出位置回到行首
  • 原位刷新时间
  • 如果想要的是大字符效果
  • 需要使用 figlet
  • 但同时还希望能刷新

python shell设置字体大小_python

  • 这可能吗?🤔

建立脚本

  • 我们得熟悉一下shell
  • 先新建一个test.sh
  • vi test.sh

python3 show_time.py python3 show_time.py python3 show_time.py


  • 看起来就是把这个内容输出了 3 次

python shell设置字体大小_零基础_02

  • 可以执行么?

尝试执行

  • 注意执行细节

python shell设置字体大小_python shell设置字体大小_03

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

python shell设置字体大小_python shell设置字体大小_04

  • 确实输出了三次时间
  • 但我还想把字变大怎么办呢?

figlet变大

  • show_time.py 的输出字符串
  • 直接通过 管道| 给到 figlet
  • 其中
  • show_time.py程序
  • 只负责输出时间
  • 输出的结果
  • 通过管道|figlet
  • figlet
  • 负责变大

python shell设置字体大小_vim_05

  • 如果想要输出三个变大之后的时间
  • 应该如何呢?

三次输出

  • 修改test.sh
  • vi test.sh
  • 编写以下文件

python3 show_time.py | figlet python3 show_time.py | figlet python3 show_time.py | figlet


  • 尝试运行

python shell设置字体大小_vim_06

  • 运行结果

python shell设置字体大小_开发语言_07

  • 确实变大了
  • 而且输出了三次
  • 现在需要不只输出三次
  • 而是无限多次不断刷新
  • 应该怎么办呢?

尝试循环

  • 无限多次肯定需要循环!
  • 原来放在 python文件 中的的循环和定时功能
  • 现在都需要放在 sh脚本 文件里
  • shell 来控制延迟的节奏
  • 那问题来了
  • sh脚本文件 如何进行循环?

搜索一下!

python shell设置字体大小_vim_08

python shell设置字体大小_python shell设置字体大小_09

  • 尝试根据这个修改

shell循环

  • 在shell中
  • 新编辑一个loop.sh
  • vi loop.sh
  • 输入以下内容

for a in {1..10} do echo $a done


  • 尝试运行此文件

保存并运行

python shell设置字体大小_python_10

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

python shell设置字体大小_python_11

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

搜索延迟

python shell设置字体大小_零基础_12


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


python shell设置字体大小_开发语言_13

  • :w|!sh %
  • 保存并运行当前 shell
  • 延迟成功
  • 接下来需要输出时间了
  • 而且是通过管道给 figlet 的大时间

整合 python

  • 把原来数字的部分换成执行命令
  • python3 show_time.py | figlet

for a in {1..10} do python3 show_time.py | figlet sleep 1s done


  • 输出成功
  • 确实可以刷新
  • 但是一屏幕上
  • 有两个时间
  • 很乱!

python shell设置字体大小_python_14

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

尝试清屏

python shell设置字体大小_vim_15


for a in {1..10} do clear python3 sleep.py | figlet sleep 1s done


  • 先去总结一下

总结

  • 这次我们研究了shell脚本的编程
  • 并且在shell中实现了
  • 循环语句
  • 延迟命令
  • 清屏命令
  • python命令
  • figlet命令

python shell设置字体大小_开发语言_16