shell脚本基础巩固(2)

1.重定向

输出重定向:将命令输出的结果发送到一个文件中,使用大于号(>)来实现此功能,例如:

将date输出的结果重定向到test7文件中,查看test7中的内容,是date输出的结果

如果使用大于号(>)进行重定向,当不存在test7文件时,会自动创建test7,并将命令的输出重定向到test7中,但是如果已经存在了test7这个文件,那么就会覆盖掉test7中之前的内容,所以,如果想要在已有的文件中追加内容的话,需要使用爽大于号(>>),例如:

输入重定向:与输出重定向相反,输入重定向是将文件中的内容重定向到命令中,使用小于号(<)来实现此功能。

这里先说明一个命令的作用,wc命令:可以对数据中的文本进行计数,返回三个参数:文本的行数,文本的词数,文本的字节数。

下面来看一个例子:

将test7中的文本内容重定向到wc命令,再用wc命令来执行文本。返回的三个参数分别对应:文本的行数,文本的词数,文本的字节数。

在输入重定向中还用另外一种重定向:内联输入重定向。这种方法不用使用文件,将文件中的内容重定向,而是直接在命令行中输入你需要执行重定向的文本内容。使用双小于号(<<)来实现此功能。需要注意的是,在输入内容的时候需要一个开头和结尾来标记文本,开头和结尾必须一样,开头和结尾中间的内容就是要执行重定向的内容,例如:

2.管道

使用竖线(|)将两个命令连在一起,两个命令会同时执行,第一个命令的输出结果会交给第二个命令执行。数据传输没有用到任何中间文件或者缓冲区。例如:

如果只输入ps -a命令,由于显示的进程过多,一屏是显示不完的,显示的内容会直接定位到最后面的进程,但是,如果使用管道,使用ps -a|more,那么就会将ps -a输出的结果交给more去处理,这时就可以通过滚动的方式来查看输出的结果了。

3.执行数学运算

在bash shell中,执行数学运算是使用美元符号和方括号($[公式]),例如:

结果为:

但是这样只支持整数运算,不支持浮点数运算,如果要进行浮点数运算,可以使用内建的bash计算器。这里主要介绍在shell文件中使用bash计算器。如下:

基本格式:

variable=$(echo "options;expression" | bc)

options为选项,expression表达式。然后使用管道的方式使用bc(bash计算器)进行计算,然后将运行的结果赋值给variable,如下:

假如需要输入的运算公式太长,那么像上面那样写是不太方便的,所以可以使用内联输入重定向的方式来进行运算,基本格式如下:

variable=$(bc<<EOF
options
statements
expressions
EOF
)

示例:

4.退出脚本

Linux提供了一个变量($?)来保存上个已经执行了的命令的退出状态码(状态码的值的区间为0~255,整数)。一般来说,成功结束后的命令返回的退出状态码都是0,而如果是其他的正整数,则表示命令结束时有错误。

例如:

在shell脚本中,默认会以脚本中的最后一个命令的退出状态码退出,这时可以去改变这个默认值,使用exit命令,如下:

该脚本的运行结果为:

这时在输出退出状态码:

注意:由于退出状态码的范围是0~255,所以如果定义的退出状态码大于了255,那么返回的退出状态码的值为:定义的退出状态码去除以256后得到的余数,例如:定义退出状态码为300,那么最终返回的退出状态码为44。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值