linux退出大于号界面命令,Linux编程 22 shell编程(输出和输入重定向,管道,数学运算命令,退出脚本状态码)...

1. 输出重定向

最基本的重定向是将命令的输出发送到一个文件中。在bash shell中用大于号(>) ,格式如下:command > inputfile。例如:将date命令的输出内容,保存到指定的输出文件中。

697dfdbdb60e072422cb994413e81d51.png

如果文件已存在,重定向操作符会用新的文件数据覆盖已有文件。这种情况下可以用双大于号(>>) 来追加数据。如下图所示:

cf0de51064c375671de8771d77204b89.png

2. 输入重定向

输入重定向和输出重定向正好相反。输入重定向是将文件的内容重定向到命令,而非将命令的输出重定向到文件。 输入重定向符号是小于号(

8f4d21e5ae4f63335385523ee28a9ffa.png

另外一种输入重定向的方法,称内联输入重定向(符号是 <

1d795159e94a47a1ba8dba5325ed8010.png

3. 管道

管道符号是单个竖线( | ) ,管道被放在命令之间,将一个命令的输出重定向到另一个命令中。格式: command1 | command2 。Linux系统会同时运行这两个命令,在系统内部将它们连接起来。在第一个文件产生输出的同时,输出会被立即送给第二个命令,数据不会用到任何中间文件或缓冲区。例如查找yum安装的所有包,并使用管道立即送给第二个命令 grep 来过滤查询字符中含有mysql的。

ee9d3dc5fb5c0931f1fbfb6517c14fba.png

下面是使用了二个管道, 排序,分页查看。并将结合重定向来将输出保存到yum.list文件中,下图是通过cat yum.list来查看文件内容。

[hsr@xuegod64 ~]$ yum list | sort | more[hsr@xuegod64~]$ yum list | sort > yum.list

1be5400247fad6cadfafdb2ae7840c50.png

4. 数学运算命令

在Bourne shell 中使用expr命令来进行数字运算。在bash shell 中也兼容,但它提供了更简单的方法来执行数学表达式, 在bash中, 将一个数学变量结果赋给某个变量时,可以用美元符和方括号( $[operation] ) 将数学表达式围起来(注意运算只支持整数)。

89832bfd7732209da7adca6cf53060de.png

同样也适合于shell脚本中。

01b19ca3ed414ca548d9c8a513f299f0.png

5. 浮点解决方案有几种方法克服bash中数学运算的整数限制,最常见的方案是用内建的bash计算器叫作bc。

5.1   bc的基本用法

bash计算器实际上是一种编程语言,它允许在命令行输入浮点表达式,然后解释并计算该表达式,返回结果。Bash 计算器能够识别: 数字,变量,注释,表达式,编程语句(if -then)。

用法是在命令行输入bc,接着输入要进行运算的数字表达式,按回车出结果,如下图所示:

7687712f5e9f2e08c4e573541b14cc85.png

对于保留小数位,使用scale指定要保留的小数位,下面先指定保留4位小数。

08ad65dc22ce00dcc71047914000a554.png

下面使用 bc –q选项不显示bash计算器的欢迎信息。使用变量来看看,如下图:

37b07346e00d54661e7cd71645610964.png

5.2  在脚本中使用bc

使用之前学过的命令替换,可以用命令替换运行bc命令,并将输出赋给一个变量。格式如下: variable=$(echo “options; expression” | bc) options是允许你设置变量,如果不止一个,用分号分开。 expression定义了通过bc执行的数学表达式。

下面是将scale变量设置成四位小数,并在expression部份指定了特定的运算。

a0108ddcced09e8488ca1957168e2a28.png

下面是在脚本中使用变量来运算浮点数

e5a52191ca3daa622e9f214ba9f22d7a.png

下面另一种方法是通过内联重定向,格式是 :

variable=$(bc <

Options

Statements

Expressions

EOF)

7d01403b8eabb463e83b5e3bc1088b38.png

6. 退出脚本

6.1 查看退出状态码

shell中运行的每个命令都有退出状态码(exit status)告诉shell它已经运行完毕。退出状态码是一个0~255的整数值。在命令结束时由命令传给shell,可以捕获这个值并在脚本中使用.

Linux提供了一个专门的变量$? 来保存上个已执行命令退出状态码。这个类似于一种开发中用断点诊断方式。 如果命令成功结束退出状态码是0,如果命令有错误,退出状态就是一个正整数。如下图所示:

a9c263f16ce51eaef44d6994923c96c0.png

下面是linux退出状态码列表

状态码

描述

0

命令成功结束

1

一般性未知错误

2

不适合的shell命令

126

命令不可执行

127

没有找到命令

130

通过ctrl + c 终止的命令

255

正常范围之外的退出状态码

需要注意的是退出状态码126 出现,有可能是用户没有执行命令的正确权限. 另一个退出状态码 1的出现,有可能是命令的参数不对。

6.2 exit

默认情况下,shell脚本会以脚本中最后一个命令的退出状态码退出。使用exit 命令可以改变这种默认行为,返回自己的的退出状态码,exit 命令允许脚本结束时指定一个退出状态码,但最大状态码只能是255。

下面在脚本最后自定义退出状态码10,  执行脚本后,使用echo $? 输出了状态码10 。

466c425ba29217e6928b9fcc28425d15.png

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值