-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathexpr.sh
More file actions
executable file
·164 lines (132 loc) · 2.68 KB
/
expr.sh
File metadata and controls
executable file
·164 lines (132 loc) · 2.68 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
#!/bin/bash
# 两数相加, 其中两数之间必须有空格
val=`expr 2 + 2`
echo "两数之和为 :$val"
a=10
b=20
val=`expr $a + $b`
echo "a + b : $val"
val=`expr $a - $b`
echo "a - b : $val"
val=`expr $a \* $b`
echo "a * b : $val"
val=`expr $b / $a`
echo "b / a : $val"
val=`expr $b % $a`
echo "b % a : $val"
if [[ $a == $b ]]; then
echo "a 等于 b"
fi
if [[ $a != $b ]]; then
echo "a 不等于 b"
fi
if [[ $a -eq $b ]]; then
echo "$a -eq $b : a 等于 b"
else
echo "$a -eq $b : a 不等于 b"
fi
if [[ $a -ne $b ]]; then
echo "$a -ne $b : a 不等于 b"
else
echo "$a -ne $b : a 等于 b"
fi
if [[ $a -gt $b ]]; then
echo "$a -gt $b : a 大于 b"
else
echo "$a -gt $b : a 不大于 b"
fi
if [[ $a -lt $b ]]; then
echo "$a -lt $b : a 小于 b"
else
echo "$a -lt $b : a 不小于 b"
fi
if [[ $a -ge $b ]]; then
echo "$a -ge $b : a 大于或等于 b"
else
echo "$a -ge $b : a 小于 b"
fi
if [[ $a -le $b ]]; then
echo "$a -le $b : a 小于或等于 b"
else
echo "$a -le $b : a 大于 b"
fi
# 布尔表达式
if [ $a -lt 100 -a $b -gt 15 ]; then
echo "$a 小于 100 且 $b 大于 15 : 返回 true"
else
echo "$a 小于 100 且 $b 大于 15 : 返回false"
fi
if [ $a -lt 100 -o $b -gt 100 ]; then
echo "$a 小于 100 或 $b 大于 100 : 返回 true"
else
echo "$a 小于 100 或 $b 大于 100 : 返回false"
fi
if [ $a -lt 5 -o $b -gt 100 ]; then
echo "$a 小于 5 或 $b 大于 100 : 返回 true"
else
echo "$a 小于 5 且 $b 大于 100 : 返回false"
fi
a="abc"
b="efg"
if [ $a = $b ]; then
echo "$a = $b : a 等于 b"
else
echo "$a = $b : a 不等于 b"
fi
if [ $a != $b ]; then
echo "$a != $b : a 不等于 b"
else
echo "$a != $b : a 等于 b"
fi
if [ -z $a ]; then
echo "-z $a : 字符串长度为0"
else
echo "-z $a : 字符串长度不为0"
fi
if [ -n $a ]; then
echo "-n $a : 字符串长度不为0"
else
echo "-n $a : 字符串长度为0"
fi
if [ $a ]; then
echo "$a : 字符串不为空"
else
echo "$a : 字符串为空"
fi
# 文件测试运算符
file="./expr.sh"
if [ -r $file ]; then
echo "文件可读"
else
echo "文件不可读"
fi
if [ -w $file ]; then
echo "文件可写"
else
echo "文件不可写"
fi
if [ -x $file ]; then
echo "文件可执行"
else
echo "文件不可执行"
fi
if [ -f $file ]; then
echo "文件为普通文件"
else
echo "文件为特殊文件"
fi
if [ -d $file ]; then
echo "文件是个目录"
else
echo "文件不是个目录"
fi
if [ -s $file ]; then
echo "文件不为空"
else
echo "文件为空"
fi
if [ -e $file ]; then
echo "文件存在"
else
echo "文件不存在"
fi