前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >[oeasy]python0035_ 整合shell编程_循环_延迟_清屏

[oeasy]python0035_ 整合shell编程_循环_延迟_清屏

原创
作者头像
oeasy
发布2022-12-29 20:52:43
2.6K0
发布2022-12-29 20:52:43
举报

整合shell编程

回忆上次内容

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

编辑

  • 这可能吗?🤔

建立脚本

  • 我们得熟悉一下shell
  • 先新建一个test.sh
    • vi test.sh
代码语言:javascript
复制
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
    • 编写以下文件
代码语言:javascript
复制
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
  • 输入以下内容
代码语言:javascript
复制
for a in {1..10}
do
    echo $a
done
  • 尝试运行此文件

保存并运行

编辑

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

编辑

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

搜索延迟

编辑

代码语言:javascript
复制
for a in {1..10}
do
    echo $a
    sleep 1s
done

编辑

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

整合 python

  • 把原来数字的部分换成执行命令
    • python3 show_time.py | figlet
代码语言:javascript
复制
for a in {1..10}
do
    python3 show_time.py | figlet
    sleep 1s
done
  • 输出成功
    • 确实可以刷新
    • 但是一屏幕上
    • 有两个时间
  • 很乱!

编辑

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

尝试清屏

编辑

代码语言:javascript
复制
for a in {1..10}
do
    clear
    python3 sleep.py | figlet
    sleep 1s
done
  • 先去总结一下

总结

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

编辑

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 整合shell编程
    • 回忆上次内容
      • 建立脚本
      • 尝试执行
      • figlet变大
      • 三次输出
      • 尝试循环
      • 搜索一下!
      • shell循环
      • 保存并运行
      • 搜索延迟
      • 整合 python
      • 尝试清屏
      • 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档