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
相关推荐
Dangks3 天前
[运维] 服务器本地网络可用性检查脚本
linux·运维·服务器·shell·network·系统工具
DreamADream4 天前
Shell编程中关于用户操作报错`用户无法登录`
shell
江上清风山间明月7 天前
shell脚本编写注意细节 ==、=等的区别
bash·shell·注意·相等·细节·==·=
避凉闲庭9 天前
ansible开局配置-openEuler
linux·运维·ansible·脚本·openeuler·免密登录·批量化
风123456789~9 天前
【Linux】按时间抽取附件
linux·运维·服务器·脚本
188_djh12 天前
# linux从入门到精通-从基础学起,逐步提升,探索linux奥秘(十六)--shell
linux·运维·bash·shell·shell入门·shell变量·linux入门到精通
RamboPan12 天前
Mac 使用脚本批量导入 Apple 歌曲
macos·自动化·shell·apple·script
I'm Jie13 天前
一站式学习 Shell 脚本语法与编程技巧,踏出自动化的第一步
linux·ssh·shell·shell脚本·shell编程
盛夏省下14 天前
2024最新青龙面板安装教程
linux·脚本·1024程序员节·青龙面板·青龙
rainsc16 天前
当多核变单核:破解CPU核心神秘失踪的终极指南!
服务器·shell