shell-script-04 参数与运算符

shell-script-04 参数与运算符

1、shell脚本参数

1
2
3
4
5
6
7
8
$# 是传给脚本的参数个数
$0是脚本本身的名字
$1是传递给该shell脚本的第一个参数
$2是传递给该shell脚本的第二个参数
$@是传给脚本的所有参数的列表
$* 是以一个单字符串显示所有向脚本传递的参数,与位置变量不同,参数可超过9个
$$ 是脚本运行的当前进程ID号
$? 是显示最后命令的退出状态,0表示没有错误,其他表示有错误

2、可用的整数比较运算符

1)下列运算用于带方括号的if语句,例如if [ $# -eq 3 ]

运算符 作用 对应单词 对应运算符
-eq 是否等于 -equal =
-ne 是否不等于 -not equal !=
-gt 是否大于 -greater then >
-lt 是否小于 -less then <
-le 是否等于或小于 -less equal <=
-ge 是否大于或等于 -greater equal >=

2)下列运算用于带双括号的if语句,例如if ((“$i” < “$min”)),在上一个例子中,使用的就是双括号。

运算符 作用
< 小于
<= 小于等于
> 大于
>= 大于等于

3、与或非运算

1)非运算

1
2
3
4
5
6
7
8
9
10
11
12
13
[root@localhost ~]# vim not.sh
[root@localhost ~]# cat not.sh
#!/bin/bash
if [ $# != 1 ];then
echo '参数个数不为1'
else
echo '参数个数是1'
fi
[root@localhost ~]# . not.sh 9
参数个数是1
[root@localhost ~]# . not.sh 9 8 7
参数个数不为1
[root@localhost ~]#

2)与运算

1
2
3
4
5
6
7
8
9
[root@localhost ~]# vim and.sh
[root@localhost ~]# cat and.sh
#!/bin/bash
if [ $1 == 1 ] && [ $2 == 2 ];then
echo '1、2'
fi
[root@localhost ~]# . and.sh 1 2
1、2
[root@localhost ~]#

3)或运算

1
2
3
4
5
6
7
8
9
10
11
12
[root@localhost ~]# vim or.sh
[root@localhost ~]# cat or.sh
#!/bin/bash
if [ $1 == 1 ] || [ $2 == 2 ];then
echo '1 or 2'
fi
[root@localhost ~]# . or.sh 1 1
1 or 2
bash: [: ==: unary operator expected
[root@localhost ~]# . or.sh 2 2
1 or 2
[root@localhost ~]#
欢迎打赏,谢谢
------ 本文结束------
0%