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
相关推荐
IT 乔峰1 天前
通过脚本一键切换YUM源
shell
Kyan.W2 天前
shell好用的工具
linux·shell
課代表2 天前
批处理脚本密码保护之简单加密
脚本·密码·批处理··加密算法·xor加密·密码复杂度
meijinmeng10 天前
Monit-基于非容器服务自恢复程序实践
shell·监控
努力的小帅11 天前
Linux_进程控制(Linux入门到精通)
linux·网络·shell·进程创建·linux入门
saber_andlibert16 天前
【Linux】Shell脚本
运维·chrome·vscode·编辑器·vim·shell
岚天start22 天前
解决方案—K8S集群的日志按天并按照命名空间分类定时同步到日志服务器
服务器·docker·kubernetes·shell·日志备份
課代表22 天前
批处理的应用与价值
系统·脚本·dos·变量·批处理·管道·办公
aitav023 天前
⚡ Linux awk 命令全面详解(包括记录、字段、命令空间)
linux·运维·服务器·bash·shell·awk
VincentHe1 个月前
当 ServerCat 遇上 Shell 环境变量:一次服务器监控性能优化记录与探索
服务器·shell·监控