一、Shell
shell是一种解释性语言,本质上是命令解释器
shell脚本是实际上是命令合集
二、shell脚本编写流程
1.vim XX.sh #!/bin/bash #! 告诉系统其后路径所指定的程序即是解释此脚本文件的 Shell 程序。
2.编写脚本
3.chmod +x XX.sh 修改程序的执行权限,确保可以被执行。
4../XX.sh
三、变量
- 环境变量:如
PATH
、PWD
、HOME
等,保存当前工作路径、用户家目录等信息。 - 这些是由操作系统或用户设置的特殊变量,用于配置 Shell 的行为和影响其执行环境。
- 位置变量:表示传递给脚本的参数,如
$0
(脚本名)、$1
(第一个参数)等。
常见位置变量:
$#
:传入参数的个数$?
:上一条命令的返回值$$
:当前Shell的PID
四、输入输出
1.read:使用read
命令从终端读取输入:
2. echo:使用echo
命令打印输出:
算术运算
使用$((表达式))
进行算术运算:
引号使用
- 双引号
""
:可以解析变量 - 单引号
''
:变量不会被解析 - 反引号``````:用于执行命令
五、分支语句
1.if语句
if [ 条件 ]; then
# 条件为真时执行的语句
else
# 条件为假时执行的语句
fi
2.多分支if语句
if [ 条件 ]; then
# 条件1为真时执行的语句
elif [ 条件 ]; then
# 条件2为真时执行的语句
else
# 条件都为假时执行的语句
fi
条件测试
-eq
:等于-ne
:不等于-gt
:大于-lt
:小于-ge
:大于等于-le
:小于等于
文件测试
-b
:块设备文件-c
:字符设备文件-d
:目录文件-f
:普通文件-L
:链接文件-S
:套接字文件-p
:管道文件
3.case语句
case $变量 in
模式1)
语句1
;;
模式2)
语句2
;;
...
*)
默认语句
;;
esac
使用*)
分支处理所有未匹配的情况,相当于默认分支。
每个分支以;;
结束,表示该分支的结束。
六、循环语句
1.for
循环
for 变量 in 列表
do
语句
done
2.while循环
while 条件
do
语句
done
3.until循环
until
循环在指定条件为假时反复执行一段代码。
until 条件
do
语句
done