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

简介: 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 ]; thencompile_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 ]; thencompile_hours=$((compile_minutes / 60))remaining_minutes=$((compile_minutes % 60))echo "编译耗时: ($compile_hours hour  $remaining_minutes minutes $remaining_seconds seconds) ####"
fi

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

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

相关文章

【linux】隐藏文件,vim 或 gedit 打开隐藏文件

用la查看隐藏文件 la 用ls查看正常文件 ls隐藏文件在Linux和其他类UNIX系统中以.开头命名,它们通常用于存储用户或系统的配置信息、缓存数据或其他不想让用户直接看到的文件。以下是您提到的一些隐藏文件及其典型用途: .bashrc: 这是Bourne Again SHe…

FPGA架构入门

一、引言 刚学习FPGA的时候,有一大堆不知名的名词,即使查它的含义,但还是不明白它是做什么的,用在哪些地方,为什么要用,导致即使接受到大量信息,也无法理解,最根本的原因&#xff0…

深度学习实战:定制化智能狗门的迁移学习之旅

引言 在深度学习领域,迁移学习是一种强大的技术,它允许我们利用预训练模型的知识来解决新的问题。在本博客中,我们将通过一个有趣的项目——为前美国总统奥巴马的宠物狗Bo定制智能狗门——来探索迁移学习的实际应用。 迁移学习简介 迁移学…

Spring 类加载器

AbstractBeanFactory --> ClassUtils.getDefaultClassLoader()->( Thread.currentThread().getContextClassLoader() or ClassLoader.getSystemClassLoader() ) --> AppClassLoader (默认情况下会拿到) Nullable public static ClassLoader getDefaultClassLoader() …

Fifteen Day 2024年5月11日

Dense adj.密集的 稠密的 浓密的 茂密的 Dense crowd. 密集的人群。 Crowd n.人群 群众 一群 v.聚集 挤满 Shanghai has a dense population. 上海的人口密度很大. Population n.人口 Pass through a dense jungle. 穿过一片茂密的丛林。 Through prep.穿越 越过 从头到…

代码+视频,R言语处理数据中的缺失值

在SCI论文中,我们不可避免和缺失数据打交道,特别是在回顾性研究,对于缺失的协变量(就是混杂因素),我们可以使用插补补齐数据,但是对于结局变量和原因变量的缺失,我们不能这么做。部分…

mysql设置远程访问权限,允许其他IP访问

文章目录 更改mysql配置文件登录mysql 更改mysql配置文件 查找.ini或者.cnf文件 更改bind-address为0.0.0.0 [mysqld] character-set-serverutf8mb4 bind-address0.0.0.0 default-storage-engineINNODB [mysql] default-character-setutf8mb4 [client] default-character-s…

数据分析思维——数据埋点笔记,以电商为例

数据埋点 数据分析前提是有数据,数据从哪里来,要选择采集哪些数据都需要考虑。如某些app上的商品推荐,是基于哪些信息来预判的呢?因此作为数据分析师有必要系统的了解用户行为到用户数据的整个过程 何为数据埋点 每当用户在客户端…

【GlobalMapper精品教程】079:投影坐标系转地理坐标系(UTM转WGS1984/2000)

文章目录 一、矢量UTM转WGS1984/20001. UTM转WGS19842. UTM转CGCS2000二、栅格UTM转WGS1984/2000一、矢量UTM转WGS1984/2000 加载配套实验数据(data079.rar)中的矢量数据,如下所示: 查看源坐标系:双击图层的,图层投影选项卡,为UTM投影,Zone48N。 设置系统坐标系:点击…

C#【进阶】泛型

1、泛型 文章目录 1、泛型1、泛型是什么2、泛型分类3、泛型类和接口4、泛型方法5、泛型的作用思考 泛型方法判断类型 2、泛型约束1、什么是泛型2、各泛型约束3、约束的组合使用4、多个泛型有约束思考1 泛型实现单例模式思考2 ArrayList泛型实现增删查改 1、泛型是什么 泛型实现…

nowcoder——回文结构

链表的回文结构_牛客题霸_牛客网 (nowcoder.com) 我们来分析该题:我们首先要清楚什么是回文结构?其实就是对称结构。如果一个链表呈对称结构就说明该链表具有回文结构。 下面给上一些例子: 那我们怎么判断该链表是否属于回文结构呢&#xf…

电影评分和评论抓取

要从电影评分⽹站抓取电影的评分和⽤⼾评论,可以考虑使⽤BeautifulSoup和requests库解析⽹⻚内容。不过,实际操作中,针对特定⽹站的结构可能会有所不同,这⾥将给出⼀个基础的⽰例, 演⽰如何从⼀个假设的⽹站中抓取信息…

Python彻底解决TypeError的问题

今天看到一个问题: TypeError: int() argument must be a string, a bytes-like object or a number, not list 代码是这样的: id int(os.path.split(imagePath)[1].split(.)[0]) 其实这个提示已经非常明显了,百度翻译过来就是&#xff1a…

对Promise的理解

Promise的含义 Promise是ES6引入的JS中进行异步编程的新解决方案。 它是一个对象, 可以获取异步操作的消息, 它的出现大大改善了异步编程的困境, 避免了地狱回调,它比传统的解决方案回调函数和事件更合理和更强大。 Promise的实…

[BJDCTF2020]ZJCTF,不过如此 1

涉及&#xff1a;php的伪协议、preg_replace函数的漏洞和正则表达式的运用。 解题步骤 <?phperror_reporting(0); $text $_GET["text"]; $file $_GET["file"]; if(isset($text)&&(file_get_contents($text,r)"I have a dream"))…

zookeeper安装集群模式

系列文章目录 文章目录 系列文章目录前言 前言 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站&#xff0c;这篇文章男女通用&#xff0c;看懂了就去分享给你的码吧。 ZooKeeper是一个分…

梦幻西游全新变现,蓝海热门玩法,小白一部手机可操作,日入2000+

亲爱的朋友们&#xff0c;你们好&#xff01;今天我要给大家分享一个热门、可行的网络赚钱项目——梦幻西游全新变现&#xff0c;蓝海热门玩法&#xff0c;小白一部手机可操作&#xff0c;日入2000。 这个项目不需要花冤枉钱&#xff0c;也是我自己实操过的&#xff0c;非常可…

法语语式与时态总结,柯桥零基础学法语

常用语式 法语中的常用语式分为&#xff1a;直陈式、条件式、虚拟式、命令式、不定式与分词式。 直陈式&#xff08;lindicatif&#xff09;初学法语时首先就要学直陈式&#xff0c;也是最常用的语式&#xff0c;表示确实发生的动作。 条件式&#xff08;le conditionnel&am…

【C++】148 排序链表

给你链表的头结点 head &#xff0c;请将其按 升序 排列并返回 排序后的链表 。 对链表进行升序排序&#xff0c;常见的做法是使用归并排序&#xff08;Merge Sort&#xff09;算法。这种算法适用于链表的排序&#xff0c;并且具有稳定性和时间复杂度为 O(n log n) 的优点。 …

LeetCode 题目 119:杨辉三角 II

作者介绍&#xff1a;10年大厂数据\经营分析经验&#xff0c;现任字节跳动数据部门负责人。 会一些的技术&#xff1a;数据分析、算法、SQL、大数据相关、python&#xff0c;欢迎探讨交流 欢迎加入社区&#xff1a;码上找工作 作者专栏每日更新&#xff1a; LeetCode解锁1000题…