Skip to content

Latest commit

 

History

History
183 lines (131 loc) · 3.44 KB

053-578024-牛说_cowsay_小动物说话_asciiart_figlet_管道.sy.md

File metadata and controls

183 lines (131 loc) · 3.44 KB
show version enable_checker
step
1.0
true

牛说(cowsay)

回忆上次内容

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

图片描述

  • 还能 整点什么 呢?🤔

cowsay

  • 还想要 让小动物报时!
  • 首先要安装 cowsay
sudo apt install cowsay
  • 装完 之后
    • cow 就可以 say 了吗?

图片描述

  • 怎么 say呢?

利用 管道

  • 利用 管道(pipe)来say

图片描述

  • 如何 与报时函数 整合呢?

整合

#!usr/bin/python3
import time
print(time.asctime())
  • 一步一步 来

图片描述

  • figlet的结果 再通过管道 送cowsay

图片描述

管道原理

Image text

  • 然后 尝试循环起来

把 cowsay 整合进来

  • 把 figlet的输出结果
    • 再送到 cowsay -f moose -n
  • 其实 就是
    • 一步步 通过管道流淌的 过程
for a in {1..10}
do
	clear
	python3 show_time.py | figlet |cowsay -f moose -n
	sleep 1s
done
  • 看起来 有点复杂
    • -f moose
      • 使用 驼鹿
    • -n
      • 保留 转义字符\n
      • 避免 屏幕混乱

图片描述

  • 这确实 有点文化😓
  • 可以来点 更的文化 吗?😄

彩色效果

#安装彩色程序
sudo apt install lolcat
#实验
echo oeasy | lolcat
  • 这样 就可以
    • 输出 色效果 了

图片描述

  • 这个 可以!
    • 真的 很
  • 可以 再把 报时
    • 整合 进来 吗?

整合 报时

  • 有时 会因为 文字长度问题
    • 显得 很乱

图片描述

  • 想要 把时间
    • 简化为 时分秒

整合 时间

  • 整合 进入原来的loop.sh
  • 循环中
    • 清屏 后
    • 输出 时间
    • 再 延时
for a in {1..100}
do
    clear
    python3 sleep.py | figlet | cowsay -f moose -n | lolcat
    sleep 1s
done
  • 输出 时间
    • 文本 长度太长
  • 想要
    • 不输出 年月日
    • 输出 时分秒

搜索

图片描述

  • 这就得 修改
    • 最初生成时间的 源头
    • show_time.py 文件
  • 怎么修改呢?

总结

  • 狂飙了一路
    • 从 用shell 直接执行 python程序
    • 到 用shell 循环执行 python程序
  • 循环体中
    • python的 输出结果
      • 用管道 交给了 figlet
    • figlet的 输出结果
      • 用管道 交给了 cowsay
    • cowsay的 输出结果
      • 用管道 交给了 lolcat
  • 这一路真的好远啊!
    • python3 是脚本解释器
    • shell 也是脚本解释器
  • 现在的问题是
    • 日期时间 输出格式 非常复杂

图片描述

  • 想要只输出时间
    • 再送 figlet 和 cowsay
    • 可以吗?🤔
  • 我们下次再说程序!👋