【脚本语言】Shell Script - 终端打印指令

news2024/11/15 9:03:46

目录

终端打印

基础语法

有趣的拓展

在echo中使用转义序列

输出彩色文本


终端打印

        终端是交互式工具,在终端中打印文本是绝大多数脚本中的基本任务。

基础语法

        终端打印有两种方法输出文本,分别是 echoprintf (就是C/C++中的那个)。

        在默认情况下,echo在每次调用时会添加一个换行符。

        输出文本的方式也有很多种:

        可以在字符串上加上双引号,例如

echo "Hello world!"

        也可以直接输入文本,同样可以达到相同效果

echo Hello world!

        另外还可以使用单引号

echo 'Hello world!'

        但这三种打印方法都有一定局限性

        使用不带引号的echo时,无法在文本中使用分号(;),因为分号在Bash Shell中被用作定界符。例如:

echo Hello;world

        这句话将在输出完"Hello"后结束,并查找名为world的指令并执行。

        还有一种可用于终端打印的命令是printf(是的,就是C语言中的那个printf)

printf "Hello world"

        默认情况下,printf并不像echo命令那样会自动添加换行符,若需要则需手动添加。同时,Bash中的printf指令同C语言中一样,可以控制输出的格式(比如字符串的宽度、左右对齐方式等),比如下列脚本:

#!/bin/bash
#文件名: printf.sh
printf "%-5s %-10s %-4s\n" No. Name Mark
printf "%-5s %-10s %-4.2f\n" 1 Curry 92.32
printf "%-5s %-10s %-4.2f\n" 2 James 94.87
printf "%-5s %-10s %-4.2f\n" 3 Kevin 91.89

输出结果:

        可以发现文本以格式化形式进行了输出。

        其中的%s,%f又或其他%c,%d等这些都是格式替换符,如果学习过C语言,相信可以很好理解这个概念。

拓展:

        %-5s中的'-'代表的意思是左对齐(若没有这个符号则默认采用右对齐),紧接着后面的数字'5'代表字符宽度,用以指定保留给某个变量的字符数,若内容不足指定的字符数,则会将余下的字符用空格符填充。

        对于Mark字段,其格式化格式为%-4.2f,其中.2表示的是保留2个小数位

        而后面的'\n'代表的是换行符。

有趣的拓展

在echo中使用转义序列

        在默认情况下,echo会追加一个换行符到输出文本的末尾。可以使用选项 -n 来忽略结尾的换行符。

        另外echo支持双引号字符串内的转义序列作为参数。如果要使用转义序列,则采用echo -e "含转义序列的字符串"

例如:

echo -e "Hello\tBash\tWorld"

输出结果:

输出彩色文本

        打印输出的文本并不是一成不变的白色,这个颜色可以通过转义序列来调整。

        每种颜色都有相应的颜色码,可以参照下列表项设置你想输出的文本颜色

颜色颜色码
重置0
黑色30
红色31
绿色32
黄色33
蓝色34
洋红35
青色36
白色37

例如,输出绿色的"Hello World":

echo -e "\e[0;32mHello World \e[0m"

输出结果: 

其中还可以对输出的文本形式(加粗、下划线、闪烁等)进行设置,其对应的样式码如下:

样式样式码
正常0
加粗1
减淡2
斜体3
下划线4
闪烁5
设置背景颜色同字体颜色7
字体透明8
删除线9

例如,使用删除线并将字体设置绿色,输出“Hello World!”

echo -e "\e[9;32mHello World \e[0m"

输出结果:

        当然,文字的背景颜色也是可以进行设置,使用到的颜色码如下:

颜色颜色码
重置0
黑色30
红色31
绿色32
黄色33
蓝色34
洋红35
青色36
白色37

例如我要用蓝色作为背景色,字体形式用删除线,输出"Hello World":

echo -e "\e[9;44mHello World \e[0m"

输出结果:

 

 

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

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

相关文章

Git---标签管理

文章目录 前言一、理解标签二、创建标签三、操作标签总结 前言 正文开始!!! 一、理解标签 标签tag,可以简单的理解为是对某次commit的一个标识,相当于起了一个别名.例如,在项目发布某个版本的时候,针对最后一次commit起一个v1.0这样的标签来标识里程碑的意义. 这有什么用呢?…

信息系统项目管理师(第四版)教材精读思维导图-第一章信息化发展

请参阅我的另一篇文章,综合介绍软考高项: 信息系统项目管理师(软考高项)备考总结_计算机技术与软件专业技术_铭记北宸的博客-CSDN博客 思维导图源文件下载: https://download.csdn.net/download/hanjingjava/8801629…

如何在工作中保持稳定的情绪

如何在工作中保持稳定的情绪 在高压的工作环境中,保持稳定的情绪对于程序员来说至关重要。作为一个程序员,我们常常面临着各种技术挑战、项目期限和团队合作的压力。在这样的环境下,情绪的波动可能会影响我们的工作效率和质量。因此&#xff…

使用OpenCV显示图像的RGB颜色直方图

#include <opencv2/opencv.hpp> #include <opencv2/imgproc/imgproc.hpp> using namespace cv;int main( ) {Mat srcImage;srcImage=<

数据特征降维 | 主成分分析PCA数据特征降维

文章目录 效果一览文章概述部分源码部分源码参考资料效果一览 文章概述 数据特征降维 | 主成分分析PCA,(主成分分析经常用于减少数据集的维数,同时保持数据集中的对方差贡献最大的特征) 部分源码 部分源码 %% 清空环境变量 warning off % 关闭报警信息 close a…

linux:ubuntu命令行扩容

参考&#xff1a; ubuntu 20.04 逻辑卷 ext4 文件系统扩容_mob604757006a49的技术博客_51CTO博客 总结&#xff1a; 准备步骤&#xff08;链接里没有说明&#xff0c;我参考了其他的帖子增加的一步&#xff09;&#xff1a; 1.关闭虚拟机&#xff0c;右键虚拟机&#xff0c;选择…

【枚举+容斥】牛客练习赛113 F

牛客练习赛113_ACM/NOI/CSP/CCPC/ICPC算法编程高难度练习赛_牛客竞赛OJ (nowcoder.com) 题意&#xff1a; 思路&#xff1a; 这道题根本不是子序列DP&#xff0c;因为子序列内部是无序的&#xff0c;这点没意识到 这是问题的easy版本&#xff0c;这种easy版本的题一般都是去…

Windows下PaddleOCR用NCNN部署

1.所用到的ncnn格式的模型文件 要问这些模型哪里来的&#xff0c;请看下面提示信息: 2.查看字典函数读取方法 char* readKeysFromAssets() {std::ifstream ifs("./model/paddleocr_keys.txt");if (!ifs.is_open()){return 0;}ifs.seekg(0, std::ios_base::end);int …

[桌面运维]PC常用的视频接口,显示器VGA、DVI、HDMI、DP、USB-C接口的认识和应用

⬜⬜⬜ &#x1f430;&#x1f7e7;&#x1f7e8;&#x1f7e9;&#x1f7e6;&#x1f7ea;(*^▽^*)欢迎光临 &#x1f7e7;&#x1f7e8;&#x1f7e9;&#x1f7e6;&#x1f7ea;&#x1f430;⬜⬜⬜ ✏️write in front✏️ &#x1f4dd;个人主页&#xff1a;陈丹宇jmu &am…

keepalived

文章目录 一、suse系统安装keepalived1.1、准备环境1.2、修改主机名1.3、关闭防火墙1.4、配置网络1.5、配置 yum 源1.6、安装 mysql1.7、安装 keepalived报错信息&#xff1a;使用 wget 下载keepalived 报错解决 使用 wget 下载 keepalived的报错 一、suse系统安装keepalived …

详解c++---位图模拟实现

目录标题 为什么会有位图一道题了解位图模拟实现位图setresettest构造函数 代码测试关于位图的几道题第一题第二题 第三题 为什么会有位图 通过前面的学习想必大家应该已经了解了哈希表的原理&#xff0c;我们使用两种不同的方法来模拟实现哈希表&#xff0c;第一种方法就是闭…

加拿大访问学者签证如何提升通过率?

加拿大访问学者是许多学者向往的机会&#xff0c;而提高签证通过率则需要注意一些关键因素。下面是知识人网小编整理的一些建议&#xff0c;希望能对您有所帮助。 首先&#xff0c;准备充分的材料是至关重要的。确保您提供了完整、准确的申请材料&#xff0c;包括学历证明、工作…

vue confirm弹窗去掉取消和右上角关闭按钮

this.confirm弹窗去除取消, 右上角x按钮 1.弹窗是显示 使用的是this.confirm弹窗, 去掉右上角的x和取消按钮, 也不能点击空白处关闭 2.修改代码 this.$confirm(this.$t(login.udpatePwdSuccess), this.$t(common.tip), {confirmButtonText: this.$t(button.confirm),showCance…

量化风控算法详解之CatBoost

CatBoost是俄罗斯的搜索巨头Yandex在2017年开源的机器学习库&#xff0c;与XGBoost、LightGBM并称为GBDT三大主流神器库。LightGBM和XGBoost已经在各领域得到了广泛的应用&#xff0c;而Yandex的CatBoost作为后起之秀则是号称比XGBoost和LightGBM在算法准确率等方面表现更为优秀…

【Hello mysql】 mysql数据类型

Mysql专栏&#xff1a;Mysql 本篇博客简介&#xff1a;介绍mysql的数据类型 mysql数据类型 数据类型分类数值类型tinyint类型越界测试bit类型小数类型float类型decimal类型 字符串类型charvarchar 时间和日期类型enum和setenunmset 总结 数据类型分类 为什么要存在数据类型呢&a…

办公难题轻松解决!快速实现文件夹多次复制,轻松节省办公时间

在日常办公中&#xff0c;我们经常遇到需要多次复制文件夹的情况&#xff0c;而繁琐的操作常常令人头疼。但现在&#xff0c;我们为您提供了一款简单易用且高效的解决方案&#xff0c;让您轻松应对复制文件夹的难题&#xff0c;节省宝贵的办公时间&#xff01; 首先我们要进入…

Flask框架之RESTful--参数验证--add_argument方法参数详解

目录 参数验证 参数验证的重要性 Flask-RESTful 参数验证方法 基本用法 1. 使用 reqparse 模块 示例 代码详解 2. 使用 marshmallow 库 示例 代码详解 add_argument方法参数详解 名词解释 代码案例 参数验证 参数验证也叫参数解析 Flask-Restful插件提供了类似W…

Win10任务栏 图标居中

参考&#xff1a;图标居中 1.右键任务栏&#xff0c;将锁定任务栏取消。 2.右键选择工具栏,然后选择新建工具栏。 3.选择一个空的文件夹。 4.将开始菜单旁边的两条线拖到新建工具栏的后面。 5.将图标拉到中间。 6.在新建工具栏的标题上右键&#xff0c;将显示标题取消选择…

cmake流程控制---cmake数学计算操作和if命令

目录 cmake 数学计算操作 demo if命令 基本表达式 逻辑表达式(NOT AND OR) 比较表达式 正则表达式 demo 文件系统相关 判断是否存在的表达式 cmake 数学计算操作 有时候我们需要对cmake变量之间进行数学运算,这时候cmake提供了math()这个命令,命令格式如下: math(…

黑苹果网络经常掉线/无线网卡无法驱动解决办法(itlwm)

适用问题 黑苹果3-5分钟掉一次网&#xff0c;网卡无法驱动(右上角WLAN图标变灰有斜杠) 作者环境 作者笔记本因为Intel网卡太旧且系统支持不稳定&#xff0c;所以经常掉网 在Github上有一款驱动(Airport)itlwm&#xff0c;经OC注入后网络状态稳定 安装方法(OC) 下载 建议在…