Linux Shell脚本攻略

news/2024/11/24 19:43:46/

一、echo命令

1、在echo中转义换行符

默认情况下,echo会在输出文本的尾部追加一个换行符。可以使用选项-n来禁止这种行为。 echo同样接受双包含转义序列的双引号字符串作为参数。在使用转义序列时,需要使用echo -e "包含转义序列的字符串"这种形式

 

转义序列:

ANSI 转义序列是一种用于控制终端输出的色彩、样式、光标位置以及控制终端行为的特殊字节. 它的使用方式就是通过 stdout 在字符串、字节中向外输出**Control当终端支持此转义序列的功能时, 就会呈现出相应的效果. 此功能常常用于终端的彩色输出、构建 Text User Interface 应用等。(例如:换行符\n  , 制表符\t  , 彩色文本 \e[1;色彩码m 文本内容 \e[0m )

2、打印彩色输出

脚本可以使用转义序列在终端中生成彩色文本。

文本颜色是由对应的色彩码来描述的。其中包括:重置=0,黑色=30,红色=31,绿色=32, 黄色=33,蓝色=34,洋红=35,青色=36,白色=37。

  要打印彩色文本,可输入如下命令:

 其中\e[1;31m是一个转义字符串,可以将颜色设为红色,\e[0m将颜色重新置回。只需要将31替 换成想要的色彩码就可以了。

对于彩色背景,经常使用的颜色码是:重置=0,黑色=40,红色=41,绿色=42,黄色=43, 蓝色=44,洋红=45,青色=46,白色=47。

二、使用shell进行数学运算
Bash shell使用let、(( ))和[]执行基本的算术操作。工具expr和bc可以用来执行高级操作。

实战演练

(1) 可以像为变量分配字符串值那样为其分配数值。这些值会被相应的操作符视为数字。

       #!/bin/bashno1=4;no2=5;

1.5 使用 shell 进行数学运算 13
(2) let命令可以直接执行基本的算术操作。当使用let时,变量名之前不需要再添加$,例如:

   let result=no1+no2echo $result

let命令的其他用法如下:

 自加操作
$ let no1++

1 2 3

 自减操作
$ let no1-- 4

 简写形式 let no+=6

let no-=6

它们分别等同于let no=no+6和let no=no-6。  其他方法

5 6 7 8

10 11 12 14

操作符[]的使用方法和let命令一样:
result=$[ no1 + no2 ]
在[]中也可以使用$前缀,例如:
result=$[ $no1 + 5 ] 也可以使用操作符(())。出现在(())中的变量名之前需要加上$:
result=$(( no1 + 50 )) 9 expr同样可以用于基本算术操作:

      result=`expr 3 + 4`result=$(expr $no1 + 5)
   以上这些方法不支持浮点数,只能用于整数运算。

(3) bc是一个用于数学运算的高级实用工具,这个精密的计算器包含了大量的选项。我们可 以借助它执行浮点数运算并使用一些高级函数:

   echo "4 * 0.56" | bc2.24no=54;result=`echo "$no * 1.5" | bc`echo $result

 bc可以接受操作控制前缀。这些前缀之间使用分号分隔。

 设定小数精度。在下面的例子中,参数scale=2将小数位个数设置为2。因此,bc将 会输出包含两个小数位的数值:

           echo "scale=2;22/7" | bc3.14

 进制转换。用bc可以将一种进制系统转换为另一种。来看看下面的代码是如何在十进 制与二进制之间相互转换的:

#!/bin/bash

用途:数字转换

           no=100echo "obase=2;$no" | bc1100100no=1100100echo "obase=10;ibase=2;$no" | bc100

 计算平方以及平方根。
echo "sqrt(100)" | bc #Square root

           echo "10^10" | bc #Square

 


http://www.ppmy.cn/news/227912.html

相关文章

有关全画幅最常见的问题

很多传闻.半真半假的报道和让人误解的概念围绕着数码相机的传感器和其尺寸在不断蔓延着。其中“全画幅”是一个讨论最频繁并且也是最频繁被错误理解的关键词。为此,我们解释了有关这个概念的一些基本问题,并告诉你一些可能你还不知道的影响因…

市场调研-全球与中国全画幅镜头市场现状及未来发展趋势

根据QYR(恒州博智)的统计及预测,2021年全球全画幅镜头市场销售额达到了 亿美元,预计2028年将达到 亿美元,年复合增长率(CAGR)为 %(2022-2028)。地区层面来看,…

spring.factories失效原因及解决方法

那么在 Spring Boot 项目中,如果被 Spring 容器管理的 bean 不在 Spring Boot 包扫描路径下,怎么办? 解决 Spring Boot 中不能被默认路径扫描的配置类的方式,有 2 种: (1)在 Spring Boot 主类…

如何获取 C#程序 内核态线程栈

一:背景 1. 讲故事 在这么多的案例分析中,往往会发现一些案例是卡死在线程的内核态栈上,但拿过来的dump都是用户态模式下,所以无法看到内核态栈,这就比较麻烦,需要让朋友通过其他方式生成一个蓝屏的dump&…

Java 面试题:Spring,Spring MVC,Spring Boot 之间什么关系?

来,先和我看张图: Spring全家桶了为了解决不同场景的问题,逐渐演化出多套生态环框,如:Spring、SpringMVC、SpringBoot、SpringCloud。 Spring MVC和Spring Boot都属于Spring,Spring MVC是基于Spring的一个…

Kafka安装及架构

kafka的特点 高吞吐量、低延迟:kafka每秒可以处理几十万条消息,它的延迟最低只有几毫秒,每个topic可以分多个partition, 由多个consumer group 对partition进行consume操作。可扩展性:kafka集群支持热扩展持久性、可靠性&#xf…

jmeter response返回乱码处理

在使用jmeter做接口测试的时候,发现返回的data为乱码的情况 处理: 1.修改文件 jmeter.properties ,所在位置bin文件夹下 找到 #sampleresult.default.encodingISO-8859-1 去掉#,将ISO-8859-1修改为utf-8 修改后,重启jmeter.…

谍影重重

《谍影重重》(The Bourne Identity)是一部2002年美德合拍的间谍动作片,改编自罗伯特鲁德鲁姆同名小说,由道格里曼执导,主要演员包括马特达蒙、克里斯库柏、弗兰卡波坦特、朱丽娅斯蒂尔斯。于2002年6月14日在美国公映。…