整合shell编程

回顾上次内容

  • \r

    • 能够让输入地位回到行首
    • 原位刷新工夫
  • 如果想要的是大字符成果

    • 须要应用 figlet
    • 但同时还心愿能刷新

  • 这可能吗?

建设脚本

  • 咱们得相熟一下shell
  • 先新建一个test.sh

    • vi test.sh
python3 show_time.pypython3 show_time.pypython3 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 | figletpython3 show_time.py | figletpython3 show_time.py | figlet
  • 尝试运行

  • 运行后果

  • 的确变大了

    • 而且输入了三次
  • 当初须要不只输入三次

    • 而是有限屡次一直刷新
    • 应该怎么办呢?

尝试循环

  • 有限屡次必定须要循环!
  • 原来放在 python文件 中的的循环和定时性能

    • 当初都须要放在 sh脚本 文件里
    • shell 来管制提早的节奏
  • 那问题来了

    • sh脚本文件 如何进行循环?

搜寻一下!

  • 尝试依据这个批改

shell循环

  • 在shell中

    • 新编辑一个loop.sh
    • vi 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/course...
  • github->https://github.com/overmind19...
  • gitee->https://gitee.com/overmind198...
  • 视频->https://www.bilibili.com/vide... 作者:oeasy