Skip to content

Commit 43f4c50

Browse files
committed
update shell scripts
1 parent 4fc170b commit 43f4c50

15 files changed

Lines changed: 426 additions & 170 deletions

codes/shell/array-demo.sh

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
#!/usr/bin/env bash
2+
3+
# 创建数组
4+
nums=([2]=2 [0]=0 [1]=1)
5+
colors=(red yellow "dark blue")
6+
7+
# 访问数组的单个元素
8+
echo ${nums[1]}
9+
# Output: 1
10+
11+
# 访问数组的所有元素
12+
echo ${colors[*]}
13+
# Output: red yellow dark blue
14+
15+
echo ${colors[@]}
16+
# Output: red yellow dark blue
17+
18+
printf "+ %s\n" ${colors[*]}
19+
# Output:
20+
# + red
21+
# + yellow
22+
# + dark
23+
# + blue
24+
25+
printf "+ %s\n" "${colors[*]}"
26+
# Output:
27+
# + red yellow dark blue
28+
29+
printf "+ %s\n" "${colors[@]}"
30+
# Output:
31+
# + red
32+
# + yellow
33+
# + dark blue
34+
35+
# 访问数组的部分元素
36+
echo ${nums[@]:0:2}
37+
# Output:
38+
# 0 1
39+
40+
# 访问数组长度
41+
echo ${#nums[*]}
42+
# Output:
43+
# 3
44+
45+
# 向数组中添加元素
46+
colors=(white "${colors[@]}" green black)
47+
echo ${colors[@]}
48+
# Output:
49+
# white red yellow dark blue green black
50+
51+
# 从数组中删除元素
52+
unset nums[0]
53+
echo ${nums[@]}
54+
# Output:
55+
# 1 2

codes/shell/array/arrayDemo.sh

Lines changed: 0 additions & 71 deletions
This file was deleted.

codes/shell/comment-demo.sh

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
#!/usr/bin/env bash
2+
3+
#--------------------------------------------
4+
# shell 注释示例
5+
# author:zp
6+
#--------------------------------------------
7+
8+
# echo '这是单行注释'
9+
10+
########## 这是分割线 ##########
11+
12+
:<<EOF
13+
echo '这是多行注释'
14+
echo '这是多行注释'
15+
echo '这是多行注释'
16+
EOF
17+
18+
# Execute: ./comment-demo.sh
19+
# Output: null
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
#!/usr/bin/env bash
2+
3+
x=10
4+
if [[ -n $1 ]]; then
5+
x=$1
6+
fi
7+
8+
y=20
9+
if [[ -n $2 ]]; then
10+
y=$2
11+
fi
12+
13+
echo "x=${x}, y=${y}"
14+
15+
val=`expr ${x} + ${y}`
16+
echo "${x} + ${y} = $val"
17+
18+
val=`expr ${x} - ${y}`
19+
echo "${x} - ${y} = $val"
20+
21+
val=`expr ${x} \* ${y}`
22+
echo "${x} * ${y} = $val"
23+
24+
val=`expr ${y} / ${x}`
25+
echo "${y} / ${x} = $val"
26+
27+
val=`expr ${y} % ${x}`
28+
echo "${y} % ${x} = $val"
29+
30+
if [[ ${x} == ${y} ]]; then
31+
echo "${x} = ${y}"
32+
fi
33+
if [[ ${x} != ${y} ]]; then
34+
echo "${x} != ${y}"
35+
fi
36+
37+
# Execute: ./operator-demo.sh
38+
# Output:
39+
# x=10, y=20
40+
# 10 + 20 = 30
41+
# 10 - 20 = -10
42+
# 10 * 20 = 200
43+
# 20 / 10 = 2
44+
# 20 % 10 = 0
45+
# 10 != 20
46+
47+
# Execute: ./operator-demo.sh 10 30
48+
# Output:
49+
# x=10, y=30
50+
# 10 + 30 = 40
51+
# 10 - 30 = -20
52+
# 10 * 30 = 300
53+
# 30 / 10 = 3
54+
# 30 % 10 = 0
55+
# 10 不等于 30
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
#!/usr/bin/env bash
2+
3+
x=10
4+
if [[ -n $1 ]]; then
5+
x=$1
6+
fi
7+
8+
y=20
9+
if [[ -n $2 ]]; then
10+
y=$2
11+
fi
12+
13+
echo "x=${x}, y=${y}"
14+
15+
if [[ ${x} -eq ${y} ]];then
16+
echo "${x} -eq ${y} : x 等于 y"
17+
else
18+
echo "${x} -eq ${y}: x 不等于 y"
19+
fi
20+
21+
if [[ ${x} -ne ${y} ]]; then
22+
echo "${x} -ne ${y}: x 不等于 y"
23+
else
24+
echo "${x} -ne ${y}: x 等于 y"
25+
fi
26+
27+
if [[ ${x} -gt ${y} ]]; then
28+
echo "${x} -gt ${y}: x 大于 y"
29+
else
30+
echo "${x} -gt ${y}: x 不大于 y"
31+
fi
32+
33+
if [[ ${x} -lt ${y} ]]; then
34+
echo "${x} -lt ${y}: x 小于 y"
35+
else
36+
echo "${x} -lt ${y}: x 不小于 y"
37+
fi
38+
39+
if [[ ${x} -ge ${y} ]]; then
40+
echo "${x} -ge ${y}: x 大于或等于 y"
41+
else
42+
echo "${x} -ge ${y}: x 小于 y"
43+
fi
44+
45+
if [[ ${x} -le ${y} ]]; then
46+
echo "${x} -le ${y}: x 小于或等于 y"
47+
else
48+
echo "${x} -le ${y}: x 大于 y"
49+
fi
50+
51+
# Execute: ./operator-demo2.sh
52+
# Output:
53+
# x=10, y=20
54+
# 10 -eq 20: x 不等于 y
55+
# 10 -ne 20: x 不等于 y
56+
# 10 -gt 20: x 不大于 y
57+
# 10 -lt 20: x 小于 y
58+
# 10 -ge 20: x 小于 y
59+
# 10 -le 20: x 小于或等于 y
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
#!/usr/bin/env bash
2+
3+
x=10
4+
if [[ -n $1 ]]; then
5+
x=$1
6+
fi
7+
8+
y=20
9+
if [[ -n $2 ]]; then
10+
y=$2
11+
fi
12+
13+
echo "x=${x}, y=${y}"
14+
15+
if [[ ${x} != ${y} ]];then
16+
echo "${x} != ${y} : x 不等于 y"
17+
else
18+
echo "${x} != ${y}: x 等于 y"
19+
fi
20+
21+
if [[ ${x} -lt 100 && ${y} -gt 15 ]];then
22+
echo "${x} 小于 100 且 ${y} 大于 15 : 返回 true"
23+
else
24+
echo "${x} 小于 100 且 ${y} 大于 15 : 返回 false"
25+
fi
26+
27+
if [[ ${x} -lt 100 || ${y} -gt 100 ]];then
28+
echo "${x} 小于 100 或 ${y} 大于 100 : 返回 true"
29+
else
30+
echo "${x} 小于 100 或 ${y} 大于 100 : 返回 false"
31+
fi
32+
33+
if [[ ${x} -lt 5 || ${y} -gt 100 ]];then
34+
echo "${x} 小于 5 或 ${y} 大于 100 : 返回 true"
35+
else
36+
echo "${x} 小于 5 或 ${y} 大于 100 : 返回 false"
37+
fi
38+
39+
# Execute: ./operator-demo3.sh
40+
# Output:
41+
# x=10, y=20
42+
# 10 != 20 : x 不等于 y
43+
# 10 小于 100 且 20 大于 15 : 返回 true
44+
# 10 小于 100 或 20 大于 100 : 返回 true
45+
# 10 小于 5 或 20 大于 100 : 返回 false
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
#!/usr/bin/env bash
2+
3+
x=10
4+
if [[ -n $1 ]]; then
5+
x=$1
6+
fi
7+
8+
y=20
9+
if [[ -n $2 ]]; then
10+
y=$2
11+
fi
12+
13+
echo "x=${x}, y=${y}"
14+
15+
if [[ ${x} -lt 100 && ${y} -gt 100 ]]
16+
then
17+
echo "${x} -lt 100 && ${y} -gt 100 返回 true"
18+
else
19+
echo "${x} -lt 100 && ${y} -gt 100 返回 false"
20+
fi
21+
22+
if [[ ${x} -lt 100 || ${y} -gt 100 ]]
23+
then
24+
echo "${x} -lt 100 || ${y} -gt 100 返回 true"
25+
else
26+
echo "${x} -lt 100 || ${y} -gt 100 返回 false"
27+
fi
28+
29+
# Execute: ./operator-demo4.sh
30+
# Output:
31+
# x=10, y=20
32+
# 10 -lt 100 && 20 -gt 100 返回 false
33+
# 10 -lt 100 || 20 -gt 100 返回 true
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
#!/usr/bin/env bash
2+
3+
x="abc"
4+
if [[ -n $1 ]]; then
5+
x=$1
6+
fi
7+
8+
y="xyz"
9+
if [[ -n $2 ]]; then
10+
y=$2
11+
fi
12+
13+
echo "x=${x}, y=${y}"
14+
15+
if [[ ${x} = ${y} ]];then
16+
echo "${x} = ${y} : x 等于 y"
17+
else
18+
echo "${x} = ${y}: x 不等于 y"
19+
fi
20+
21+
if [[ ${x} != ${y} ]];then
22+
echo "${x} != ${y} : x 不等于 y"
23+
else
24+
echo "${x} != ${y}: x 等于 y"
25+
fi
26+
27+
if [[ -z ${x} ]];then
28+
echo "-z ${x} : 字符串长度为 0"
29+
else
30+
echo "-z ${x} : 字符串长度不为 0"
31+
fi
32+
33+
if [[ -n "${x}" ]];then
34+
echo "-n ${x} : 字符串长度不为 0"
35+
else
36+
echo "-n ${x} : 字符串长度为 0"
37+
fi
38+
39+
if [[ ${x} ]];then
40+
echo "${x} : 字符串不为空"
41+
else
42+
echo "${x} : 字符串为空"
43+
fi
44+
45+
# Execute: ./operator-demo5.sh
46+
# Output:
47+
# x=abc, y=xyz
48+
# abc = xyz: x 不等于 y
49+
# abc != xyz : x 不等于 y
50+
# -z abc : 字符串长度不为 0
51+
# -n abc : 字符串长度不为 0
52+
# abc : 字符串不为空

0 commit comments

Comments
 (0)