静默模式:grep -q root /etc/passwd
[root@Centos7 ~]# grep root /etc/passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
[root@Centos7 ~]# grep -q root /etc/passwd
[root@Centos7 ~]# echo $?
0
只能显示上一个一旦中间终端就无无法显示了。
在shell脚本中,只要最后一条命令可以正常执行,那么$?就会显示0.
$?的返回值就是100(状态码)
expr 3 /* 5中:因为expr是是内部命令,内部命令的话 * 表示的是所有全部,所以要转译
还可以[root@Centos7 ~]# echo 3*4 |bc
12
[root@Centos7 ~]# declare -i n
[root@Centos7 ~]# n=2+3
[root@Centos7 ~]# echo $n
5
整数化
id++ =id=id+1
与:
1.只有全为1,结果为1,只要有一个是0,结果就是0
2.和1与,结果为原值,和0与结果为0
或:只要有一个1结果就为1,全为0的,结果才为0
[root@Centos7 /data/scripts37]# x=10
[root@Centos7 /data/scripts37]# y=12
[root@Centos7 /data/scripts37]# x=$[x^y];y=$[x^y];x=$[x^y];echo x=$x; echo y=$y
x=12
y=10
短路与:
cmd1 && cmd2 :如果cmd1 结果为失败,不执行cmd2,如果第一个cmd1成功,必须执行cmd2
短路或:
cmd1 | | cmd2:
如果cmd1成功,不执行cmd2,如果cmd1失败,执行cmd2
13 DISK="`df |grep 'dev/sd'|tr -s ' ' %|cut -d% -f5 |sort -nr |head -1`"
14 test $DISK -ge 8 && echo -e '\033[35m disk $DISK >80%\033[0m' || echo -e "\033[35mdisk is normal\033[0m"