初识shell【运算符与判断】
2.查看本机现有解释器: cat/etc/shells3.修改用户的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 【注:数字间有空格】
# expr 10 % 3【求10与3的余数】
1
2.$[]
# echo $ 【求5乘3】
15
# x=5 【分别为x和y赋值并求乘积】
# y=10
# echo $
50
3.let 【不显示结果】
# x=6
# y=6
# let i=x+y
# echo $i
12
简写运算:
# x=5
# let x++ 【为x值加1】
# echo $x
6
# x=5
# let x+=5 【为x值加5】
# 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
取小数点后两位
# echo "scale=2;2/10"| bc
.20
6. 比较:test或 [ 参数= 参数] 【括号内一定要有空格】
# [ a = a ]
# echo $? 【判断是否执行】
0
7.判断空值 -z
# [ -z $p ]
# echo $?
0
# p=5
# [ -z $p ]
# 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 errorroot < /root/mail
编辑邮件内容vim /root/mail
2.判断文件/目录的状态
-e判断对象是否存在,存在即为真
-d判断对象是否为目录,存在即为真
-f判断对象是否为文件,存在即为真
-r 读
-w 写
-o 执行本
注:root对所有对象皆为真『脚本除外』
#chmod -x who.sh
#ll who.sh
-rw-r--r--. 1 root root 81 4月24 11:52 who.sh
#[ -o who.sh ]
#echo $?
1
[判断]&& 命令 存在即执行命令
[判断]||命令 不存在即执行命令
!取反
比较整数大小【带g的都有大于二字,带e的都有等于二字,带l的都有小于二字】
-gt :大于
-ge :大于等于
-eq: 等于
-ne:不等于
-lt:小于
-le:小于等于
单分支if 只能判断对
双分支if 判断对和错
多分支if 多次判断
页:
[1]