echo、seq、{}、date、bc命令

文章目录

  • echo、seq、{}、date、bc命令
    • echo
      • 案例
    • seq命令
      • 案例
    • {}花括号
      • 列表扩展
      • 序列扩展
      • 嵌套扩展
    • date
    • bc(高精度计算器)

echo、seq、{}、date、bc命令

echo

echo命令是一个常用的Shell命令,用于在终端上输出文本。它的基本语法如下:

echo [option] [string]
# 其中,option选项是可选的,可以用于控制输出的格式,string是要输出的文本,也可以为空。
-n  :不换行,输出完后不自动换行
-e  :支持转义字符- \t:表示制表符- \n:表示换行符等- \r:表示回车符- \a:表示响铃符- \b:表示退格符- \f:表示换页符- \v:表示纵向制表符- \\:表示反斜杠- \':表示单引号- \":表示双引号
-E :禁用转义符(默认行为)

案例

例1:输出字符串

输出一个字符串"Hello, world!"并在末尾加换行符

[root@ubuntu2204csq101 ~]# echo 'Hello,world!'
Hello,world!

例2:输出字符串取消换行

如果要取消自动换行,可以使用-n选项

[root@ubuntu2204csq101 ~]# echo -n 'Hello,world!'
Hello,world![root@ubuntu2204csq101 ~]# 

例3:输出制表符

如果要输出一个制表符,可以使用转义字符"\t"

[root@ubuntu2204csq101 ~]# echo -e 'Hello\tworld!'
Hello	world!

例4:将echo的输出输入到文件中

[root@ubuntu2204csq101 ~]# echo 'Hello, world!' > output.txt
[root@ubuntu2204csq101 ~]# cat output.txt 
Hello, world!
#这个命令会将字符串"Hello, world!"写入到名为output.txt的文件中
#如果文件已经存在,会覆盖原有内容;如果文件不存在,会创建一个新文件

seq命令

seq(sequence 的缩写),用来生成一系列的数字,可以指定起始值、增量值和终止值。seq 命令可以用于生成数字列表,或者与其他命令配合使用,例如在 bash 循环中。基本语法如下

seq [OPTION]... [FIRST] [INCREMENT] LAST
#FIRST:序列的起始值,默认为 1。
#INCREMENT:序列的增量值,默认为 1。
#LAST:序列的终止值,必须指定。
#OPTION:可选的参数,用于控制输出的格式、分隔符等

seq 命令支持以下常用的选项或参数:

选项说明
-f指定输出的格式,可以使用 %g(默认)、%e(指数形式)或 %f(浮点形式)表示数字,也可以添加其他字符作为前缀或后缀
-s指定输出的分隔符,默认为换行符
-w使输出的数字具有相同的宽度,不足的部分用 0 填充

案例

例1:生成从 1 到 10 的数字序列

如果只指定一个数字作为参数,seq 命令会从 1 开始,以 1 为增量,生成到该数字的序列

[root@ubuntu2204csq101 ~]# seq 10
1
2
3
4
5
6
7
8
9
10

例2:生成5到15的数字序列

如果指定两个数字作为参数,seq 命令会以第一个数字为起始值,第二个数字为终止值,以 1 为增量,生成数字序列

[root@ubuntu2204csq101 ~]# seq 5 15
5
6
7
8
9
10
11
12
13
14
15

例3:生成10到50,以10为增量的数字序列

如果指定三个数字作为参数,seq 命令会以第一个数字为起始值,第三个数字为终止值,第二个数字为增量,生成数字序列

[root@ubuntu2204csq101 ~]# seq 10 10 50
10
20
30
40
50

例4:生成从 10 到 1,以 -1 为增量的数字序列

如果要生成递减的数字序列,可以指定一个负数作为增量

[root@ubuntu2204csq101 ~]# seq 10 -1 1
10
9
8
7
6
5
4
3
2
1

例5:生成从 1 到 2,以 0.2 为增量的小数序列

seq 命令也可以生成小数序列,只要指定一个小数作为参数即可

[root@ubuntu2204csq101 ~]# seq 1 0.2 2
1.0
1.2
1.4
1.6
1.8
2.0

例6:使用-s选项指定输出的分隔符

[root@ubuntu2204csq101 ~]# seq -s ':' 5
1:2:3:4:5

例7:使用 -w 选项使输出的数字具有相同的宽度

seq 命令默认输出的数字的宽度是根据数字的位数决定的,如果要使输出的数字具有相同的宽度,可以使用 -w 选项,这样不足的部分会用 0 填充

[root@ubuntu2204csq101 ~]# seq -w 9 11
09
10
11

例8:使用 -f 选项指定输出的格式

seq 命令默认输出的数字的格式是 %g,即一般的数字格式,如果要使用其他格式,可以使用 -f 选项,可以使用 %e(指数形式)或 %f(浮点形式)表示数字,也可以添加其他字符作为前缀或后缀

[root@ubuntu2204csq101 ~]# seq -f '[INFO] This is log message #%g' 1  10
[INFO] This is log message #1
[INFO] This is log message #2
[INFO] This is log message #3
[INFO] This is log message #4
[INFO] This is log message #5
[INFO] This is log message #6
[INFO] This is log message #7
[INFO] This is log message #8
[INFO] This is log message #9
[INFO] This is log message #10

seq命令参考:Linux seq命令教程:生成数字、日期、字母等序列(附实例详解和注意事项)-Linux入门自学网

{}花括号

{}的核心作用是按照括号内的模式生成多个字符串,语法格式为:前缀{模式}后缀

模式 可以是列表序列嵌套组合,扩展后会将 “前缀 + 模式中的每个元素 + 后缀” 组合成新字符串。

列表扩展

语法{元素1,元素2,元素3,...}

#1.基础用法:配置touch使用,创建多个文件名
touch file{1,3,5}.txt  
#2.配合 mkdir 创建多个文件夹
mkdir doc{_draft,_final,_archive}  

序列扩展

语法{起始值..结束值}{起始值..结束值..步长}

#1.整数序列(默认步长1)
[root@ubuntu2204csq101 ~]# echo num{1..10}
num1 num2 num3 num4 num5 num6 num7 num8 num9 num10
#2.奇数序列(设置步长2)
[root@ubuntu2204csq101 ~]# echo num{1..10..2}
num1 num3 num5 num7 num9
#3.字母序列(a-z或A-Z)
[root@ubuntu2204csq101 ~]# echo {a..z}
a b c d e f g h i j k l m n o p q r s t u v w x y z

嵌套扩展

语法{模式1{模式2}..}

#1.列表序列
[root@ubuntu2204csq101 ~]# echo {A,B}{1..3}
A1 A2 A3 B1 B2 B3
#2.序列嵌套列表
[root@ubuntu2204csq101 ~]# echo file{1..2}_{a,b}.log  
file1_a.log file1_b.log file2_a.log file2_b.log
#3.三层嵌套(日期组合)
[root@ubuntu2204csq101 ~]# echo {2023,2024}-{01..02}-{01..30}  
2023-01-01 ... 2023-01-15 2023-02-01 ... 2024-02-15
#4.创建多重文件
[root@ubuntu2204csq101 ~]# mkdir -p /back/{csq{1..3}/csq{1..3}.html,zhw,hehe}
[root@ubuntu2204csq101 ~]# tree /back/
/back/
├── csq1
│   ├── csq1.html
│   ├── csq2.html
│   └── csq3.html
├── csq2
│   ├── csq1.html
│   ├── csq2.html
│   └── csq3.html
├── csq3
│   ├── csq1.html
│   ├── csq2.html
│   └── csq3.html
├── hehe
└── zh

date

查看或修改时间

date [OPTION]... [+FORMAT]
# 其中,OPTION是可选的命令选项,+FORMAT是可选的输出格式。
-s:设置系统时间为STRING指定的时间,要求用户具有root权限
--date:用于基于指定时间字符串输出日期,支持相对时间和绝对时间

常用FORMAT

类别格式符说明(示例输出)
常用格式%F日期(% Y-% m-% d,2025-09-01)
%T时间(% H:% M:% S,15:30:45)
%s从 1970-01-01 00:00:00 UTC 起的秒数(时间戳)
年份%Y4 位完整年份(2025)
%y2 位年份(25)
月份%m2 位月份(01-12)
%b缩写月份名(Jan, Feb…)
%B完整月份名(January, February…)
%h同 % b(缩写月份名)
日期%d2 位日期(01-31)
%e日期(1-31,不足 2 位不补 0)
%j年内天数(001-366)
星期%a缩写星期名(Mon, Tue…)
%A完整星期名(Monday, Tuesday…)
%u数字星期(1-7,1 = 周一)
%w数字星期(0-6,0 = 周日)
小时%H24 小时制小时(00-23)
%I12 小时制小时(01-12)
分钟%M分钟(00-59)
秒数%S秒数(00-59)
%N纳秒(000000000-999999999)
时间制%p上 / 下午标识(AM, PM)
时区%Z时区名称(如 CST, UTC)
%z时区偏移(如 + 0800)

date命令使用案例

#1.手动修改时间为2023年4月28日 9点47分00秒
[root@localhost ~]# date -s "2023-04-28 9:47:00"
Fri Apr 28 09:47:00 CST 2023
#2.输出当前时间的时间戳即自1970年1月1日0时0分0秒以来的秒数)
[root@localhost ~]# date +%s
1682646351
#3.输出自定义时间戳
[root@kylinv10sp3csq ~]# date "+%F %a %p %T"
2025-09-01 Mon PM 19:47:41

date --date(可简写为date -d),核心用法精简如下:

date -d yesterday  # 昨天
date -d today      # 今天(默认,可省略)
date -d tomorrow   # 明天
# 过去时间(...ago)
date -d "1 day ago"    # 1天前
date -d "1 month ago"  # 1个月前
date -d "1 year ago"   # 1年前
date -d "1 hour ago"   # 1小时前
date -d "1 minute ago" # 1分钟前
date -d "1 second ago" # 1秒前# 未来时间(直接写单位)
date -d "1 day"    # 1天后
date -d "1 month"  # 1个月后
# (小时、分钟、秒用法同上)
#支持绝对时间(如date -d "2023-10-01 12:30")
#可组合使用(如date -d "2 days 3 hours ago")

bc(高精度计算器)

bc命令是一个计算器程序,可以进行高精度的数学计算。它可以读取标准输入或文件中的表达式,并计算表达式的结果。下面是一些常见的用法:

  1. 基本运算
    bc支持基本的数学运算符,包括加减乘除和求模运算,例如:
echo "3 + 4" | bc
echo "3 - 4" | bc
echo "3 * 4" | bc
echo "3 / 4" | bc
echo "3 % 4" | bc

这些命令分别输出7、-1、12、0和3,分别表示加、减、乘、除和求模的结果。
2. 指数运算
bc支持指数运算,可以用"^"符号表示,例如:

[root@localhost ~]# echo "2 ^ 8"| bc
256

这个命令输出256,表示2的8次方的结果。
3. 小数计算
bc可以进行小数计算,需要将scale变量设置为小数点后的位数,例如:

[root@localhost ~]# echo "scale=2; 3 / 4" | bc
0.75

这个命令输出0.75,表示3除以4的结果保留两位小数。
4. 大数计算
bc可以进行高精度的计算,可以处理超过计算机位数的整数和小数,例如:

[root@localhost ~]# echo "12345678901234567890 * 98765432109876543210" | bc
1219326311370217952237463801111263526900

这个命令输出1219326311370217954013316222663771887900,表示两个超大的整数的乘积。
5. 函数

bc支持一些数学函数,例如sin、cos、tan、sqrt等,可以用函数名和参数来调用,必须加上 -l参数才行例如:

[root@localhost ~]# echo " s(0.5)" | bc -l
0.47942553860420300027

这个命令输出0.47942553860420300000,表示sin(0.5)的结果。

bc默认是整数计算器,如果要进行小数计算,需要使用scale变量,如果要进行高精度计算或使用数学函数,需要使用-l选项。

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

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

相关文章

Vue2之Vuex

文章目录 数据准备新建项目选择模块安装vscode工具打开 删除无用文件删除src/assets文件下的所有内容删除src/components文件下的所有内容修改src/app.vuevscode运行项目 一、 概述1.是什么2. 使用场景3.优势4 Vuex流程图5.注意: 二、需求: 多组件共享数据创建三个组…

2025具身智能赛道观察:技术、产业与视频基础设施

引言 2025 年,具身智能(Embodied Intelligence)毫无疑问已经成为全球资本追逐的“风口赛道”。从人形机器人、无人配送,到低空经济和智能驾驶,几乎所有与物理世界深度结合的领域,都被纳入具身智能的广义范…

【商业银行风控模型(python版本,实操合集,附带anaconda安装教程,持续更新)】

Anaconda(Python工具)安装1.Mac中安装Anaconda2.点击“Free Download”下载后,点击“Skip registration”,跳过注册环节。 3.conda list4.安装完成Anaconda基本操作命令 # 查看当前虚拟环境下的所有包 conda list # 查看某个特定的…

FPGA DDR 地址映射-黄金法则

FPGA 中 DDR 控制器的地址映射顺序(Address Mapping Order) 是优化设计速度(带宽和效率) 的关键。简单来说,地址映射顺序决定了线性地址如何映射到 DDR 芯片内部的物理结构(Bank、Row、Column)。…

网络安全设备监控指标

网络安全设备监控指标 近日看到一篇设备情况汇报,内容写得有些欠缺,因此我特意问了一下AI,整理了一下思路。以下是监控需要关注的性能指标。权当抛砖引玉。根据指标可以做监控,也可以做调研指标。 业务承载能力 吞吐量&#xff08…

JSP程序设计之JSP指令

1、JSP指令概念与分类 (1)概念 JSP指令相当于在编译期间的命令,用来设置与整个JSP页面相关的属性,它并不直接产生任何可见的输出,用来设置全局变量、声明类、要实现的方法和输出内容的类型等。在JSP文件被解析为Java…

Generative Art with p5.js: Creating Beauty from Code

Are you ready to make something truly beautiful with p5.js? Forget about boring bar charts and sales data—let’s create art that moves, breathes, and responds to your touch. We’re going to explore generative art, where code becomes your paintbrush and a…

Wi-Fi技术——网络安全

一、数据帧的安全 1、无线网络安全的发展 理论上无线电波范围内的任何一个站点都可以监听并登录无线网络,所有发送或接收的数据,都有可能被截取,因此无线网络安全十分重要。 原始802.11的安全策略为WEP,其存在根本性的漏洞&#x…

Java提供高效后端支撑,Vue呈现直观交互界面,共同打造的MES管理系统,含完整可运行源码,实现生产计划、执行、追溯一站式管理,提升制造执行效率

前言在当今竞争激烈的制造业环境中,企业面临着提高生产效率、降低成本、保证产品质量以及快速响应市场变化等多重挑战。制造执行系统(MES,Manufacturing Execution System)作为连接企业上层计划管理系统(如ERP&#xf…

【macOS】垃圾箱中文件无法清理的常规方法

【macOS】垃圾箱中文件无法清理的方法如果外接 SSD 移动盘上的垃圾文件无法删除, 可能是由于文件系统格式不兼容、文件被占用、权限不足等原因导致的, 以下是一些常见的解决方法:检查移动硬盘文件系统格式:如果移动硬盘是 NTFS 格…

鸿蒙ArkTS 核心篇-15-条件渲染(组件)

目录 根据逻辑条件结果,渲染不同的 UI 内容 DevEco Studio代码实战 预览效果 总结 根据逻辑条件结果,渲染不同的 UI 内容 DevEco Studio代码实战 let num: number 20Entry Component struct Index {build() {Column() {if (num 1) {Text(文本 1)} …

大模型微调显存内存节约方法

大模型微调时节约显存和内存是一个至关重要的话题,尤其是在消费级GPU(如RTX 3090/4090)或资源有限的云实例上。下面我将从显存(GPU Memory) 和内存(CPU Memory) 两个方面,为你系统地…

Linux笔记12——shell编程基础-6

字符截取命令一、cut命令功能:用于从文件或标准输入中提取指定字段或列语法:cut [选项] 文件名-f:列号,提取第几列,默认识别制表符分割出来的列(列号之间用,隔开)-d:分隔符&#xff…

高效浏览器标签页管理:Chrome扩展开发完全指南

Hi,我是前端人类学(之前叫布兰妮甜)! 在信息过载的时代,浏览器标签页管理已成为提高工作效率的关键技能。本文将介绍如何开发一个功能完整的Chrome扩展,帮助用户高效管理浏览器标签页,并探讨其实…

从 WPF 到 Avalonia 的迁移系列实战篇3:ResourceDictionary资源与样式的差异与迁移技巧

从 WPF 到 Avalonia 的迁移系列实战篇3:ResourceDictionary资源与样式的差异与迁移技巧 我的GitHub仓库Avalonia学习项目包含完整的Avalonia实践案例与代码对比。 我的gitcode仓库是Avalonia学习项目。 文中主要示例代码均可在仓库中查看,涵盖核心功能实现与优化方案…

基于Springboot的音乐媒体播放及周边产品运营平台(有报告)。Javaee项目,springboot项目。

演示视频: 基于Springboot的音乐媒体播放及周边产品运营平台(有报告)。Javaee项目,springboot项目。项目介绍: 采用M(model)V(view)C(controller&#xff09…

【项目思维】嵌入式产业链与技术生态

这篇文章深入解析嵌入式产业链与技术生态上下游关系,辅助建立嵌入式工程师职业发展认知。嵌入式行业并不是“写单片机程序”那么简单,而是一个 从芯片设计到系统集成再到最终产品落地 的复杂生态链。理解上下游价值链,有助于你成为系统型工程…

机器学习(讲解)

一、引言:什么是监督学习?监督学习(Supervised Learning)是机器学习中最基础且应用最广泛的范式之一。其核心思想是利用已标记的数据(即输入-输出对)训练模型,使其能够对新的、未标记的数据进行…

使用 Bright Data Web Scraper API + Python 高效抓取 Glassdoor 数据:从配置到结构化输出全流程实战

使用 Bright Data Web Scraper API Python 高效抓取 Glassdoor 数据:从配置到结构化输出全流程实战 摘要 本文详细介绍了如何使用 Bright Data 的 Web Scraper API 搭配 Python,实现对 Glassdoor 平台信息的高效抓取。通过 API 请求构建器、反爬机制集成…

Burgan Bank Türkiye 如何借助 Elastic 改造可观测性和安全性

作者:来自 Elastic Jon Ashley, Ido Friedman, Burak Dz Burgan Bank Trkiye Burgan Bank K.P.S.C. 是科威特项目公司 (KIPCO) 集团的子公司,成立于 1977 年,是中东和北非 (MENA) 地区最大的控股集团和重要银行集团之一。 该银行作为客户的解…