初识shell运算符与判断
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了初识shell运算符与判断相关的知识,希望对你有一定的参考价值。
小白的shell之路
系统版本 Red Hat Enterprise Linux Server release 7.0
【基础篇】
认识shell和基本运算符
1.什么是shell脚本:
Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。
Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。
2.查看本机现有解释器:
cat /etc/shells
3.修改用户的shell解释器:
useradd -s /bin/ksh zhangsan 【创建用户张三的时候指定登陆shell】
usermod -s /bin/ksh zhangsan 【修改已有用户张三的登陆shell】
4.查看历史命令:
history
vim /etc/profile 【进入配置文件】
HISTSIZE=1000 【可修改默认历史数量】
history -c 【清空历史命令】
5.历史命令的应用:
![序号] 【再次执行该序号的命令】
!cat 【再次执行最近以cat开头的命令】
6.重定向标准输入/输出/错误输出
> 将命令执行的正常输出重定向到文件
>>:只收集前面命令的正确输出
2>:只收集前面命令的错误输出
&>:前面命令的正确与错误输出
>&2:将正确的输出结果变成错误的输出
运算符:
1.expr 【注:数字间有空格】
[[email protected] ~]# expr 10 % 3 【求10与3的余数】
1
2.$[]
[[email protected] ~]# echo $[5*3] 【求5乘3】
15
[[email protected] ~]# x=5 【分别为x和y赋值并求乘积】
[[email protected] ~]# y=10
[[email protected] ~]# echo $[x*y]
50
3.let 【不显示结果】
[[email protected] ~]# x=6
[[email protected] ~]# y=6
[[email protected] ~]# let i=x+y
[[email protected] ~]# echo $i
12
简写运算:
[[email protected] ~]# x=5
[[email protected] ~]# let x++ 【为x值加1】
[[email protected] ~]# echo $x
6
[[email protected] ~]# x=5
[[email protected] ~]# let x+=5 【为x值加5】
[[email protected] ~]# echo $x
10
let x*=5 【为x值晨乘5】
let x/=5 【为x值除以5】
let x%=5 【为x值取余】
4.bc 【计算器】
5+5
10
5. 取小树点后x位
scale=x
取小数点后两位
[[email protected] ~]# echo "scale=2;2/10" | bc
.20
6. 比较:test 或 [ 参数 = 参数 ] 【括号内一定要有空格】
[[email protected] ~]# [ a = a ]
[[email protected] ~]# echo $? 【判断是否执行】
0
7.判断空值 -z
[[email protected] ~]# [ -z $p ]
[[email protected] ~]# echo $?
0
[[email protected] ~]# p=5
[[email protected] ~]# [ -z $p ]
[[email protected] ~]# echo $?
1
1.一行打多条命令
a && b 仅当a成功时,才执行b
a || b 仅当a失败时,才执行b
a ; b 执行a,执行b
示例:
创建用户登陆超过两个邮件报警
#!/bin/bash
num=`who | wc -l`
[ $num -gt 2 ] && mail -s error root < /root/mail
编辑邮件内容vim /root/mail
2.判断文件/目录的状态
-e 判断对象是否存在,存在即为真
-d 判断对象是否为目录,存在即为真
-f 判断对象是否为文件,存在即为真
-r 读
-w 写
-o 执行本
注:root对所有对象皆为真『脚本除外』
[Moring晨光]#chmod -x who.sh
[Moring晨光]#ll who.sh
-rw-r--r--. 1 root root 81 4月 24 11:52 who.sh
[Moring晨光]#[ -o who.sh ]
[Moring晨光]#echo $?
1
[判断] && 命令 存在即执行命令
[判断] || 命令 不存在即执行命令
! 取反
单分支if 只能判断对
双分支if 判断对和错
多分支if 多次判断
以上是关于初识shell运算符与判断的主要内容,如果未能解决你的问题,请参考以下文章