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

news2024/9/21 4:34:32

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

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

人生格言: 人生从来没有捷径,只有行动才是治疗恐惧和懒惰的唯一良药.

更多原创,欢迎关注:Android系统攻城狮

欢迎关注Android系统攻城狮

🍉🍉🍉文章目录🍉🍉🍉

    • 🌻1.前言
    • 🌻2.shell语言介绍
    • 🌻3.代码实例
      • 🐓3.1 计算程序编译前后的时间
      • 🐓3.2 如果超过60秒,则转换成分钟;如果超60分钟,则转换成小时。
      • 🐓3.3 优化版本v3.0

🌻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 计算程序编译前后的时间

#!/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分钟,则转换成小时。

#!/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 优化版本v3.0

#!/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

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

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

相关文章

Ubuntu 下使用 Scons 交叉编译嘉楠堪智 CanMV K230 大小核 Coremark 程序

在 Ubuntu 下使用 SCons 进行交叉编译嘉楠堪智 CanMV K230 大小核(不同的玄铁 C908 核心)的 C 程序,以 Coremark 程序为例,顺便测试一下大小核和编译器的性能。 2024年3月14日,嘉楠科技宣布推出了全球首款支持 RISC-V…

掌握未来搜索的钥匙:深入解析 Milvus 向量搜索引擎的终极指南!

在大数据时代,向量搜索技术愈发重要。作为一个开源的向量相似性搜索引擎,Milvus 提供了基于向量的相似性搜索功能,广泛应用于机器学习、人工智能等领域。本文将深入介绍 Milvus 的基本概念,包括其介绍、主要作用、使用方法及注意事…

【iOS开发】—— 初识锁

【iOS开发】—— 初识锁 线程安全锁的种类自旋锁定义原理自旋锁缺点OSSpinLock(自旋锁) 互斥锁os_unfair_lockpthread_mutexNSLockNSRecusiveLockSemaphore信号量synchronized 总结两种之间的区别和联系: 线程安全 当一个线程访问数据的时候…

深入理解WPF的ResourceDictionary

深入理解WPF的ResourceDictionary 介绍 在WPF中,ResourceDictionary用于集中管理和共享资源(如样式、模板、颜色等),从而实现资源的重用和统一管理。本文详细介绍了ResourceDictionary的定义、使用和合并方法。 定义和用法 Res…

Android Hanlder 揭密之路- 深入理解异步消息传递机制Looper、Handler、Message三者关系

在Android开发中,Handler作为实现线程间通信的桥梁,扮演着至关重要的角色。无论是在主线程执行UI操作,还是在子线程进行耗时任务,Handler都可以高效地将异步消息分派到对应的线程中执行。 本文将全方位解析Handler的工作原理及实现…

2024数维杯数学建模C题思路代码

2024年数维杯&电工杯思路代码在线文档​https://www.kdocs.cn/l/cdlol5FlRAdE 这道题想要做出好的结果,必须要结合插值法和分布函数来做,主要还是因为勘探点太少,直接用插值法效果不太好,以下是我做的,函数分布可…

Python的while循环

目录 while循环的结构 示例 关键字 break continue while循环的结构 while condition(循环条件): # 循环的内容 循环内容的执行与结束需要通过循环条件控制。 在执行循环之前需要设立一个循环条件的初始值,以便while循环体判断循环条件。…

Loongnix系统替换内核操作

Loongnix系统替换内核操作 一、终端下执行命令 sudo apt search linux-image* 返回结果中格式如: linux-image-4.19.0-19-loongson-3 为最新的内核源码。 二、下载内核源码包 sudo apt source linux-image-4.19.0-19-loongson-3 如提示:E: 您必须在 sources.li…

网络安全等级保护的发展历程

1994年国务院147号令第一次提出,计算机信息系统实行安全等级保护,这也预示着等保的起步。 2007年《信息安全等级保护管理办法》的发布之后。是等保在各行业深耕落地的时代。 2.0是等保版本的俗称,不是等级。等保共分为五级,二级…

C#语音播报(通过CoreAudioAPI完成对扬声器的控制)

1,效果: 作用: 可对当前内容(例如此例中的重量信息)进行语音合成播报 。可设置系统扬声器音量与状态(是否静音),同时根据扬声器状态同步更新当前控件状态与值,实现强制PC扬声器按照指定的音量进行播报&…

Ansible常用变量【上】

转载说明:如果您喜欢这篇文章并打算转载它,请私信作者取得授权。感谢您喜爱本文,请文明转载,谢谢。 在Ansible中会用到很多的变量,Ansible常用变量包括以下几种: 1. 自定义变量——在playbook中用户自定义…

函数重载和函数模板

c语言中函数名字不可重复,但是可以写代码实现 普通的函数重载 这些同名函数的形参列表(参数个数 或 类型 或 顺序)必须不同和返回值没有关系(因为就像我想调用Add(1,2),Add重载的几个函数仅仅返回值不同,编辑器就不知道去找哪一个,就有歧义了) 情况1-数组 int ave(int*pa,i…

用 Supabase CLI 进行本地开发环境搭建

文章目录 (零)前言(一)Supabase CLI(1.1)安装 Scoop(1.2)用 Scoop 安装 Supabase CLI (二)本地项目环境(2.1)初始化项目(2…

【全开源】微凌客洗护小程序FastAdmin+Uniapp(源码搭建/上线/运营/售后/维护更新)

一款基于FastAdminUniapp开发的洗护小程序系统,适用于线上下单到店核销的业务场景,拥有会员卡、优惠券、充值提现、商户管理等功能,提供Uniapp后台无加密源代码。 线上线下融合:微凌客洗护小程序适用于线上下单到店核销的业务场景…

nacos命名空间的配置

给微服务配置namespace 给微服务配置namespace只能通过修改配置来实现。 例如,修改order-service的application.yml文件: spring:cloud:nacos:server-addr: localhost:8848discovery:cluster-name: HZnamespace: 492a7d5d-237b-46a1-a99a-fa8e98e4b0f…

C语言数据结构 - 选择题集合(二叉树)

一生负气成今日 四海无人对夕阳 目录 树的专辑 树的专辑 1.有n个元素的完全二叉树的深度是( ) A.nlogn B.nlogn1 C.logn D.logn1 答案:D 解析: 设完全二叉树的节点数为 N,高度为 h ,高度为 h 时空的结点…

python零基础知识 - 定义列表的三种方式,循环列表索引值

这一小节,我们将从零基础的角度看一下,python都有哪些定义列表的方式,并且循环这个列表的时候,怎么循环,怎么循环他的索引值,怎么拿到的就是元素值。 说完循环,我们会说一说关键的break和contin…

分布式存储故障导致数据库无法启动故障处理---惜分飞

国内xx医院使用了国外医疗行业龙头的pacs系统,由于是一个历史库,存放在分布式存储中,由于存储同时多个节点故障,导致数据库多个文件异常,数据库无法启动,三方维护人员尝试通通过rman归档进行应用日志,结果发现日志有损坏报ORA-00354 ORA-00353,无法记录恢复,希望我们给予支持 M…

AI智能分析高精度烟火算法EasyCVR视频方案助力打造森林防火建设

一、背景 随着夏季的来临,高温、干燥的天气条件使得火灾隐患显著增加,特别是对于广袤的森林地区来说,一旦发生火灾,后果将不堪设想。在这样的背景下,视频汇聚系统EasyCVR视频融合云平台AI智能分析在森林防火中发挥着至…

人脸消费给传统食堂带来的变化

消费的技术基础是脸部识别,脸部识别是基于人的容貌特征信息进行认证的生物特征识别技术,其突出的特征是以非接触方式进行识别,避免个人信息的泄露。 面部识别和指纹识别、掌纹识别、视网膜识别、骨骼识别、心率识别等都是人体生物特征识别技术…