[oeasy]python0036_牛说_cowsay_小动物说话_asciiart_figlet_lolcat_管道(祝大家新年快乐~)

news2024/9/26 5:22:34

牛说(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

管道原理

  • 然后尝试循环起来

把 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 文件

show_time.py

#!/usr/bin/python3
import time
localtime = time.strftime(' %H:%M:%S',time.localtime())
print(localtime,end="")
  • 这个东西应该如何理解呢?

具体理解

  • strftime 函数

    • str 是字符串 string 的意思
    • f 是 format
  • strftime 函数 把一个 time.localtime()

    • 格式化为一个字符串

  • 缺省参数就是当前时间

#!/usr/bin/python3
import time
print(time.strftime('%H:%M:%S'),end="")
  • 格式如何理解呢?

理解格式

  • 格式化成 %H:%M:%S 这个格式

    • 这个格式选取了三个时间元组项

      • %H是小时
      • %M是分钟
      • %S是秒钟
      • 中间用:分割

  • 试验走起来

直接运行 sh

  • 这两个搭配起来确实可以运行了!
  • 但是循环次数还是受限制
  • 可以做一个永远循环的吗?

搜索

  • 看起来是把

    • for i in {0..100}
  • 换成

    • while true

替换效果

  • 效果还行

更多效果

  • 哈哈 火鸡turkey也能说话

    • 也许我们也可以用fortune-zh
    • 把偈语打到时钟旁边???

  • 如果我想直接运行 loop.sh 呢?

    • 而不是sh loop.sh可以么?

直接运行

  • 直接运行的话
  • loop.sh没有执行权限
  • 给他提权

    • chmod 改变模式
    • u+x 给当前用户增加执行权限
chmod u+x loop.sh
./loop.sh
  • 然后再运行

  • 绿色说明可以运行了
  • 不过前面还是需要当前路径./

    • 如果就想要 loop.sh 直接运行
    • 不要当前路径 ./ 呢?

设置路径

export PATH=$PATH:.
  • 注意$的位置

    • 前面的是PATH没有$
    • 后面的$PATH有$
  • .(点) 指的是当前的路径

  • 这样

    • 就可以直接运行当前路径下的程序了
    • 不用在程序前面加上./
  • 不过如果关了当前的shell

    • 还是不能直接运行
  • 怎么办来着?🤔

~/.zshrc

  • 编辑当前zsh的配置文件 ~/.zshrc

    • 每次进入zsh都会执行这个配置文件的

  • 这样重开一个shell

    • 还是可以直接运行loop.sh
    • 跳出循环可以用ctrl+c
    • 把循环放到后台用ctrl+z

  • 这就是我们之前都接触过的内容了!

    • 啊~终于完成了
    • 不容易!!!
    • 可以自己做一个小动物吗?
  • 还是先来总结一下吧!

总结

  • 我们狂飙了一路
  • shell程序

    • 从用 shell 直接运行 python 程序
    • 到用 shell 循环运行 python 程序
  • shell中的循环体

    • 把 python 的输出结果用管道交给了 figlet 程序
    • 把 figlet 输出的结果用管道给了 cowsay
    • 把 cowsay 的结果给了 lolcat
  • 最后是提权直接运行shell程序
  • 这一路真的好远啊

    • python3 是脚本解释器
    • shell 也是脚本解释器
    • 其实我们是在 shell 中利用 python3 的输出结果

      • 用 shell 把 python 的粘了起来
      • 分时输出的
    • 不过这一路真的好绕

      • 如果能用 python 直接调用 shell 中的命令就好了
      • 那个时候 python 就成了胶水的主体
      • 完成主循环、延迟等粘合的工作
    • 也许有一天可以做到
  • 可以自己画一个小动物来报时吗?🤔
  • 我们下次再说程序!👋
  • 蓝桥->oeasy 教您玩转 python_Python - 蓝桥云课
  • github->GitHub - overmind1980/oeasy-python-tutorial: 良心的 Python 教程,面向零基础初学者简明易懂的 Python3 入门基础课程。在linux+vim生产力环境下,从浅入深,从简单程序学到网络爬虫。可以配合蓝桥云上实验环境操作。
  • gitee->oeasy教您玩转python教程: 面向零基础初学者的简明易懂的 Python3 入门课程,对没有编程经验的同学也非常友好。在vim下从浅入深,逐步学习。从基础入门学习到爬虫。
  • 视频->[oeasy]教您玩转python零基础学python入门教程(合集)_哔哩哔哩_bilibili 作者:oeasy

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/131198.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

人工智能-逻辑回归

1,逻辑回归介绍 逻辑回归:分类模型 应用场景:广告点击率、是否垃圾邮件 逻辑回归主要用于解决二分类问题 输入: 逻辑回归的输入:线性回归的结果 激活函数:sigmoid函数 回归的结果输入到sigmoid函数中 输…

UE5笔记【十四】漂流者游戏制作【一】地形材质准备

针对游戏的剧情设计:角色流落荒岛,寻找食物和水,等待救援。只有按时找到才能存活。否则游戏失败了。 新建一个第三人称游戏。可以将项目名称命名为《CastAway》 启动Landmass插件 然后启用Water插件。 然后删除场景中不需要的东西。保留荒岛…

DoIP协议从入门到精通——诊断通信

DoIP(Diagnostic on IP)是基于IP(车载通信总线介质)为实现诊断诊断通信搭建通信桥梁的过程。从车辆连接-车辆声明-激活通信,都在前面几篇文章有过分享: 在专栏中可以找到文章! 如下述将DoIP协议内容映射到计算机OSI七层通信模型中,其作用就是将物理层接收到的收据,准…

(十) Docker微服务实战

Docker微服务实战一、IDEA新建一个普通微服务模块二、通过dockerfile发布微服务部署到docker容器2.1、打包模块2.2、编写 Dockerfile以及上传jar包2.3、构建镜像2.4、运行容器一、IDEA新建一个普通微服务模块 建Module docker_boot Pom文件 <?xml version"1.0" e…

2022年技术自媒体经验分享 —— 开始尝试认真做 B站 的一年后的复盘

文章目录前言一、回顾过去1、进驻B站2、进驻知识星球3、做全网最强的算法星球4、付费是道砍二、星球简介1、星主介绍2、星球简介三、星球内容1、九日集训2、付费专栏 - 免费阅读3、每月算法集训4、每日作业5、个人规划6、更优质的朋友圈7、向我提问 - 深思熟虑你的问题8、持续创…

微机原理真题错题整理2018,2019年

目录 2017年 选择 填空题 2018年 选择 填空题 编程题 2017年 选择 1:若一SRAM芯片的容量是10248位&#xff0c;除电源和接地外该芯片的其他引脚最少应为&#xff08;&#xff09; A:23 B:22 C:21 D:20 10242^1010根地址线 8位8根数据线 …

【SV】为什么需要异步复位?同步输入/异步输入、异步复位/同步复位(bad)、异步复位同步释放、同步系统/异步系统

【SV】为什么需要异步复位&#xff1f;同步输入/异步输入、异步复位/同步复位&#xff08;bad&#xff09;、同步系统/异步系统 1. 同步输入/异步输入&#xff08;synchronous and asynchronous inputs in sequential system&#xff09;为什么需要异步复位&#xff1f;1.1 异步…

k8s之基本环境准备

写在前面 本文看下学习k8s需要的基础环境&#xff0c;包括运行环境&#xff0c;docker等。 1&#xff1a;准备linux运行环境 环境&#xff1a;win10 虚拟化工具&#xff1a;VMware-workstation-full-15.1.0 linux&#xff1a;ubuntu-22.04.1-desktop-amd64.iso 。 安装完毕…

6)Django Cookies/Session,中间件,Nginx+uwsgi安装配置

目录 一 Django cookie 与 session Cookies Django 中 Cookie 的语法 Session(保存在服务端的键值对) 工作原理 实例 二 Django中间件 自定义中间件 自定义中间件类的方法 process_request 方法 process_response process_view process_exception 三 Django Nginxu…

【值得收藏】机器学习实战项目汇总(初级、中级、高级)

大家都知道&#xff0c;教科书上所学与实际操作还是有出入的&#xff0c;那关于机器学习有什么好的项目可以实操吗&#xff1f; 这次给大家分享一个涵盖面向初学者&#xff0c;中级专家和专家的23种机器学习项目创意&#xff0c;以获取有关该增长技术的真实经验。这些机器学习…

opencv-python常用函数解析及参数介绍(三)——图像滤波

图像滤波前言1.制作噪声生成椒盐噪声生成高斯噪声2.滤波均值滤波框滤波高斯滤波中值滤波总结前言 很多时候我们能拿到的图片并不是十分干净&#xff0c;有时会有一些噪声&#xff0c;这时我们就应该采用滤波的方式对他进行处理&#xff0c;本文将在一张干净的图片上生成噪声并…

OpenWrt19.07设置mac地址为芯片内置出厂地址

目录7628芯片的mac地址openwrt源码修改验证关联问题随机地址在何处生成mac地址生成时机最近发现所使用的openwrt19.07系统在htlk7628核心板上运行时&#xff0c;一旦恢复出厂设置或者重刷固件后对应的mac地址就会改变&#xff0c;猜测系统生成mac地址方式并非使用了芯片内部的m…

复习篇【类的构造方法与代码块的执行】

复习篇【类的构造方法与代码块的执行】&#x1f34e;一.构造方法&#x1f352;1.1 基本语法&#x1f352;1.2 this关键字&#x1f34e;二.代码块执行&#x1f352;2.1 什么是代码块&#x1f352;2.2 普通代码块&#x1f352;2.3 构造代码块&#x1f352;2.4 静态代码块&#x1…

VBScript (vbs) 脚本实例

欢迎小伙伴的点评✨✨ 文章目录前言一、vbs是什么&#xff1f;二、简单使用VBScript实例2.1、msgbox实例2.2、VBScript 的变量三、VBScript 输出文本及键盘按键到cmd3.1、cmd的FOR循环3.2、cmd的ping指令3.1、VBScript 批量输出到cmd命令代码实例四、总结前言 本文将会给大家带…

(二十九)Vue之回顾本地存储webStorage

文章目录webStorageLocalStoragesessionStorage改造TodoList案例为本地存储Vue学习目录 上一篇&#xff1a;&#xff08;二十八&#xff09;Vue之组件化编码流程 webStorage 使用HTML5可以在本地存储用户的浏览数据。 早些时候,本地存储使用的是 cookie。但是Web 存储需要更…

力扣2. 两数相加

给你两个 非空 的链表&#xff0c;表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的&#xff0c;并且每个节点只能存储 一位 数字。 请你将两个数相加&#xff0c;并以相同形式返回一个表示和的链表。 你可以假设除了数字 0 之外&#xff0c;这两个数都不会以 0 …

java实现随机获取封面图片

大家好&#xff0c;我是雄雄。 前言 最近阳的很多&#xff0c;大家都注意身体啊&#xff1b; 今天给大家分享一篇&#xff1a;java如何实现随机获取七牛云obs中的图片&#xff0c;主要用于给文章随机添加封面&#xff0c;因为固定一个封面的话&#xff0c;会显得很单一&#x…

企业注册信息如何识别真假?企业四要素API有什么好处?

企业注册信息越来越多&#xff0c;如何才能识别企业的真假&#xff0c;就需要有一套检验信息真伪的工具&#xff0c;这里我们分享的《企业四要素》就是用以检验企业真假的一种新型防伪应用供大家选择&#xff1a; 1、企业名称&#xff0c;2、法人名称&#xff0c;3、法人身份证…

第十三篇 1+X考证 Web前端测试题Laravel篇(新)

*Laravel中文网&#xff1a;Laravel 中文网 为 Web 工匠创造的 PHP 框架 单选题 1、Laravel中入口文件所在路径是&#xff08; B &#xff09; A、项目/app B、项目/public C、项目/routes D、项目/vendor [ 知识点&#xff1a;如图 ] 2、下面哪个是Laravel闪存数据的方法…

js实现九九乘法表(两种方法)

方法一&#xff1a; 观察规律&#xff1a; 第一个数每行都是自增1。 我们发下第二个数都是从1开始&#xff0c;依次递增1&#xff0c;永远不大于前面的数。 前面数字每自增一次&#xff0c;后面数字自增一轮。 我们可以用双重for循环&#xff0c;外层初始值设为i&#xff0…