shell进阶之计算编译前后时间(十八)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长!

优质专栏:Audio工程师进阶系列原创干货持续更新中...... 】🚀
优质专栏:多媒体系统工程师系列原创干货持续更新中...... 】🚀
优质视频课程:AAOS车载系统+AOSP14系统攻城狮入门实战课原创干货持续更新中......】🚀

人生格言: 人生从来没有捷径,只有行动才是治疗恐惧和懒惰的唯一良药.
更多原创,欢迎关注:Android系统攻城狮

🍉🍉🍉文章目录🍉🍉🍉

    • 🌻1.前言
    • 🌻2.shell语言介绍
    • 🌻3.代码实例
      • [🐓3.1 计算程序编译前后的时间](#🐓3.1 计算程序编译前后的时间)
      • [🐓3.2 如果超过60秒,则转换成分钟;如果超60分钟,则转换成小时。](#🐓3.2 如果超过60秒,则转换成分钟;如果超60分钟,则转换成小时。)
      • [🐓3.3 修改优化显示格式](#🐓3.3 修改优化显示格式)
      • [🐓3.4 增加显示颜色功能](#🐓3.4 增加显示颜色功能)

🌻1.前言

本篇目的:shell进阶之计算编译前后时间

🌻2.shell语言介绍

  • Shell语言,又称Shell脚本,是一种基于Unix和Linux操作系统的命令行脚本语言。它主要用于自动化任务、配置系统、编写程序等。Shell语言的强大之处在于它可以方便地调用系统命令、处理文件和目录、进行条件判断和循环等操作。
  • Shell语言的基本语法与C语言类似,但更为简洁。它主要由命令、参数和注释组成。命令是Shell语言的核心,用于执行各种操作。参数是命令后面的变量,用于指定命令的执行参数。注释是用井号(#)开头的文本,用于解释代码。
  • Shell语言的功能十分强大。它可以执行系统管理任务,如创建、删除、移动文件和目录;查看、修改文件权限;查看、调试系统日志等。此外,Shell语言还可以编写程序,实现复杂的业务逻辑。这使得Shell语言成为系统管理员和开发人员必备的技能。
  • Shell语言还具有很高的灵活性。它支持各种控制结构,如条件判断(if、else、case等)、循环(for、while等)和函数。这些控制结构使得Shell脚本可以处理各种复杂场景。此外,Shell语言还支持管道操作,可以将多个命令的输出作为另一个命令的输入,实现命令之间的数据传递。
  • 在实际应用中,Shell语言常用于自动化部署、运维任务、测试等。例如,通过编写Shell脚本,可以自动化地部署应用程序、配置网络、备份数据等。同时,Shell语言还可以与其他编程语言结合使用,如Python、Java等,实现更高效、更复杂的业务逻辑。
  • 为了提高工作效率,许多系统管理员和开发人员会编写一些常用的Shell脚本,以便快速执行重复性任务。将这些常用的脚本保存为一个文件,并在需要时运行,可以大大提高工作效率。
  • Shell语言是一种功能强大、灵活易用的脚本语言。掌握Shell语言,可以让你在Unix和Linux系统中更加得心应手,提高工作效率。无论你是系统管理员、开发人员还是普通用户,学习Shell语言都会对你有所帮助。

🌻3.代码实例

🐓3.1 计算程序编译前后的时间

cpp 复制代码
#!/bin/bash

# 编译前的当前时间
before_compile=$(date +%s)

# 编译程序
sleep 1

# 编译后的当前时间
after_compile=$(date +%s)

# 计算编译耗时
compile_time=$((after_compile - before_compile))

# 输出编译耗时
echo "Compilation time: $compile_time seconds"

打印:Compilation time: 1 seconds

🐓3.2 如果超过60秒,则转换成分钟;如果超60分钟,则转换成小时。

cpp 复制代码
#!/bin/bash

# 编译前的当前时间
before_compile=$(date +%s)

# 编译程序
sleep 1

# 编译后的当前时间
after_compile=$(date +%s)

# 计算编译耗时
compile_time=$((after_compile - before_compile))

# 转换时间单位:先转换为分钟,如果超过60分钟再转换为小时
compile_minutes=$((compile_time / 60))
remaining_seconds=$((compile_time % 60))

# 输出编译耗时,先显示分钟数,再显示剩余秒数
echo "Compilation time (minutes:seconds): $compile_minutes:$remaining_seconds"

# 如果编译时间超过60分钟,再转换为小时和分钟
if [ $compile_minutes -gt 60 ]; then
    compile_hours=$((compile_minutes / 60))
    remaining_minutes=$((compile_minutes % 60))
    echo "Compilation time (hours:minutes:seconds): $compile_hours:$remaining_minutes:$remaining_seconds"
fi

🐓3.3 修改优化显示格式

cpp 复制代码
#!/bin/bash

# 编译前的当前时间
before_compile=$(date +%s)

# 编译程序
sleep 61

# 编译后的当前时间
after_compile=$(date +%s)

# 计算编译耗时
compile_time=$((after_compile - before_compile))

# 转换时间单位:先转换为分钟,如果超过60分钟再转换为小时
compile_minutes=$((compile_time / 60))
remaining_seconds=$((compile_time % 60))

# 输出编译耗时,先显示分钟数,再显示剩余秒数
echo "编译耗时: ($compile_minutes minutes $remaining_seconds seconds) ####"

# 如果编译时间超过60分钟,再转换为小时和分钟
if [ $compile_minutes -gt 60 ]; then
    compile_hours=$((compile_minutes / 60))
    remaining_minutes=$((compile_minutes % 60))
    echo "编译耗时: ($compile_hours hour  $remaining_minutes minutes $remaining_seconds seconds) ####"
fi

🐓3.4 增加显示颜色功能

cpp 复制代码
#!/bin/bash

# 编译前的当前时间
before_compile=$(date +%s)

# 编译程序
sleep 1

# 编译后的当前时间
after_compile=$(date +%s)

# 计算编译耗时
compile_time=$((after_compile - before_compile))

# 转换时间单位:先转换为分钟,如果超过60分钟再转换为小时
compile_minutes=$((compile_time / 60))
remaining_seconds=$((compile_time % 60))

# 输出编译耗时,先显示分钟数,再显示剩余秒数(显示绿色: \033[0;32m)
echo -e  "编译耗时: \033[0;32m ($compile_minutes minutes $remaining_seconds seconds) ####"

# 如果编译时间超过60分钟,再转换为小时和分钟
if [ $compile_minutes -gt 60 ]; then
    compile_hours=$((compile_minutes / 60))
    remaining_minutes=$((compile_minutes % 60))
    #显示绿色: \033[0;31m
    echo -e "编译耗时: \033[0;31m ($compile_hours hour  $remaining_minutes minutes $remaining_seconds seconds) ####"
fi
相关推荐
cpp_learners3 小时前
Linux 程序卡死的特殊处理
linux·shell·c/c++·程序卡死·守护程序
泛黄的咖啡店2 天前
Shell学习——Shell变量
shell
NPE~2 天前
开发必备基础知识【Linux环境变量文件合集】
linux·运维·bash·shell·zsh·环境变量
技术探索者4 天前
Shell:如何判断两个字符串相等
linux·shell
未知百分百4 天前
Django任意URL跳转漏洞(CVE-2018-14574)
后端·python·安全·web安全·网络安全·django·shell
GaoJamie5 天前
macOS如何查看终端的shell类型
macos·终端·shell
Learning改变世界5 天前
Shell代码解读
python·shell
小袁搬码6 天前
wget之Win11中安装及使用
windows·shell
菜鸟柱子6 天前
shell脚本数据库查询-钉钉发生信息
数据库·钉钉·shell
gopyer6 天前
Unix/Linux shell实用小程序1:生字本
linux·unix·shell