.1. 变量

变量是 Shell 脚本编程中最基本的概念之一,用于存储数据。Shell 中的变量不需要事先声明,只需要在变量名前加上 $ 符号即可引用该变量。

  • 命令语法
1
2
3
4
# 定义变量
变量名 = 值
# 调用变量
$变量名
  • 示例
1
2
name="John"
echo "My name is $name."

.2. 常用判断

在 Shell 脚本编程中,常常需要根据某些条件进行判断。

.2.1. if 语句

1
2
3
4
# if 语句判断变量 num 是否大于 10,如果成立则输出 "The number is greater than 10."
if [ $num -gt 10 ]; then
echo "The number is greater than 10."
fi

.2.2. case 语句

1
2
3
4
5
6
7
8
9
10
11
case $variable in
value1)
echo "Variable is value1."
;;
value2)
echo "Variable is value2."
;;
*)
echo "Variable is neither value1 nor value2."
;;
esac

.3. 流程控制

.3.1. for 循环语句

1
2
3
for i in {1..5}; do
echo $i
done

.3.2. while 语句

1
2
3
4
while [ $num -le 10 ]; do
echo $num
num=$((num+1))
done

.4. 传参

在 Shell 脚本中,可以通过命令行参数来传递参数值。

  • 示例
1
2
3
4
#!/bin/bash

echo "The first parameter is: $1"
echo "The second parameter is: $2"

在上述代码中,使用 $1$2 来引用第一个和第二个参数。

1
$ ./script.sh foo bar

输出结果

1
2
The first parameter is: foo
The second parameter is: bar

.5. 函数

函数来封装重复使用的代码.

  • 示例
1
2
3
4
5
6
7
#!/bin/bash

greeting() {
echo "Hello, $1!"
}

greeting "John"
  • 调用脚本 ./script.sh
1
2
[root@VM-0-9-centos tmp]# ./script.sh 
Hello, John!

.6. 数组

在 Shell 脚本中,可以使用数组来存储一组数据。

  • 示例
1
2
3
4
5
6
7
#!/bin/bash

fruits=("apple" "banana" "orange")

echo ${fruits[0]} # 输出 "apple"
echo ${fruits[1]} # 输出 "banana"
echo ${fruits[2]} # 输出 "orange"
  • 调用
1
2
3
4
[root@VM-0-9-centos tmp]# ./script.sh 
apple
banana
orange

.7. 示例

以下是一个综合使用变量、常用判断、流程控制、传参、函数、数组的 Shell 脚本示例

  • 示例
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#!/bin/bash

name="John"
age=20
fruits=("apple" "banana" "orange")

if [ $age -ge 18 ]; then
echo "$name is an adult."
else
echo "$name is not an adult."
fi

for fruit in ${fruits[@]}; do
echo "I like $fruit."
done

greeting() {
echo "Hello, $1!"
}

greeting $name
  • 调用脚本
1
2
3
4
5
6
[root@VM-0-9-centos tmp]# ./script.sh 
John is an adult.
I like apple.
I like banana.
I like orange.
Hello, John!