整合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]python0035_ 整合shell编程_循环_延迟_清屏的更多相关文章

  1. 04 shell编程之循环语句

    Shell编程之循环语句 学习目标: 掌握for循环语句编程 掌握while循环语句编程 目录结构: For循环语句 l  读取不同的变量值,以逐个执行同一组命令 l  For语句结构 for 变量名 ...

  2. shell编程之循环语句for / while / until

    shell编程之循环语句与函数 一.条件测试 二.循环语句 ① for循环语句结构(遍历) 示例1 示例2 ② while循环语句结构(迭代) 示例1 示例2 ③ until 循环语句结构 示例1 一 ...

  3. Shell编程之循环语句与echo的用法

    Shell编程之循环语句与echo的用法 目录 Shell编程之循环语句与echo的用法 一.echo用法 1. echo常用选项 2. 常用的转义字符 3. 特殊符号%.#的用法 二.循环语句 1. ...

  4. Linux - 简明Shell编程06 - 循环语句(Loop)

    脚本地址 https://github.com/anliven/L-Shell/tree/master/Shell-Basics 示例脚本及注释 #!/bin/bash # for循环 for fil ...

  5. shell编程之循环

    一.for循环 for循环是Shelll中最常见的循环结构,根据书写习惯又分为列表for循环.不带列表的for循环以及类C的for循环.for循环是一种运行前的测试语句,也就是在运行任何循环体之前先要 ...

  6. Shell 编程(循环)

    for in 循环语句 #!/bin/bash for x in one two three four do echo number $x done 例:取出passwd中每一行name 并输出 he ...

  7. Linux centosVMware shell编程 for循环、while循环、break跳出循环、continue结束本次循环、exit退出整个脚本

    一.for循环 语法:for 变量名 in 条件; do …; done 案例1 #!/bin/bash sum=0 for i in `seq 1 100` do sum=$[$sum+$i] ec ...

  8. shell编程之循环语句

    for #! /bin/sh for FRUIT in apple banana pear; do echo "I like $FRUIT" done while #! /bin/ ...

  9. 【Python开发】【编程开发】各种系统的清屏操作命令

    mac os x terminal清屏快捷键 cammand+k linux系统清屏快捷键 ctrl+l linux系统命令行清屏命令 clear windows 命令行清屏命令 cls Matlab ...

  10. C Primer Plus_第6章_循环_编程练习

    1.题略 #include int main(void) { int i; char ch[26]; for (i = 97; i <= (97+25); i++) { ch[i-97] = i ...

随机推荐

  1. Java中双括号初始化是个什么操作

    最近在阅读Mybatis源码的时候,看到了一种原来很少见到的语法: public class RichType { ... private List richList = new ArrayList( ...

  2. nginx启动流程

    nginx启动流程 1. 根据命令行决定配置文件路径 2. 如果处于升级中则监听环境变量里传递的监听句柄 3. 调用所有核心模块的create_conf方法生成存放配置项的结构体 4. 针对所有核心模 ...

  3. 修改linux默认启动界面——从命令行模式转换为图形化模式

    从命令行模式转换为图形化模式 首先需要安装对应的图形化安装包 yum groupinstall "GNOME Desktop" "Graphical Administra ...

  4. .Net Core 部署IIS

    我相信很多人看了其他的贴子,都没有成功部署,因为里面有很多暗坑.接下来博主就一步一步给大家讲明白,带领大家部署 先基本的发布 操作:右击web项目的<发布>按钮.选文件 配置发布属性    ...

  5. [吐槽]困扰了1周的API调用失败问题的原因是使用了加密DNS

    参考API的官方文档使用postman测试了一下,导入了百度提供的postman环境配置文件,粘贴提供的预处理代码后直接发起请求,响应里提示 "signature is empty" ...

  6. Keil一键添加.c文件和头文件路径脚本--可遍历添加整个文件夹

    最近想移植个LVGL玩玩,发现文件实在是太多了,加的手疼都没搞完,实在不想搞了就去找脚本和工具,基本没找到一个...... 主要是自己也懒得去研究写脚本,偶然搜到了一个博主写的脚本,原博客地址:htt ...

  7. Chapter1 p1 Output Image

    由于本文章是对TinyRenderer的模仿,所以并不打算引入外部库. 那么我们第一步需要解决的就是图形输出的问题,毕竟,如果连渲染的结果都看不到,那还叫什么Renderer嘛. 由于不引入外部库,所 ...

  8. NetCore Benchmark 基准测试

    基于NetCore的基准测试Demo(控制台程序) 创建控制台程序,输入工程名称    LinqConsole 通过NuGet引用BenchmarkDotNet至工程中 编写测试代码  类:Bench ...

  9. 【VMware vSphere】使用RVTools中的PowerShell脚本创建导出vSphere环境信息的自动化任务。

    RVTools 是 VMware 生态系统中一个非常受欢迎且免费的 Windows 实用工具,用于收集并显示 VMware vSphere 环境中的相关信息,如虚拟机.主机及集群等相关配置.RVToo ...

  10. BST-Treap名次树指针实现板子 Ver2.1

    为了更好的阅读体验,请点击这里 这里只有板子没有原理QWQ 可实现 1.插入 x 数 2.删除 x 数(若有多个相同的数,只删除一个) 3.查询 x 数的排名(排名定义为比当前数小的数的个数 +1) ...