什么是shell脚本
Shell脚本与Windows/Dos下的批处理相似,也就是用各类命令预先放入到一个文件中,方便一次性执行的一个程序文件,主要是方便管理员进行设置或者管理用的。
shell脚本的规则
shell和pytho都是较弱语言
变量规则
### 变量名=值(不能有空格)
1.定义特殊需要双引号或单引号
2.在Linux中需要``(反引号)
### 单引号和双引号区别
1.双引号中有$变量名,输出的是变量名对应的变量值
2.单引号中有$变量名,输出的是$变量名
### 案例:
name = 123(是错误的,符合两边含有空格)
name=123(这是对的)
name1=12 3(值之间不能由空格)
name="12 3"(值之间可以有空格,因为是字符串)
echo name(是name没有$)
echo $name2(输出的name2中的值)
### 在文件中编写代码需要加``
dir=`pwd`
echo $dir
### 创建脚本
touch 名.sh(创建脚本)
vim 名.sh (编写代码)
./ 名.sh(第一种执行脚本)
sh 名.sh(第二种执行脚本)
### 查看文件中的有几个文件
touch 名.sh(创建脚本)
vim 名.sh (编写代码)
dir=`ls | wc - l`
echo $dir
./ 名.sh(第一种执行脚本)
sh 名.sh(第二种执行脚本)
### 查看其他文件中的有几个文件
touch 名.sh(创建脚本)
vim 名.sh (编写代码)
read paths
cd $paths
dir=`ls | wc - l`
echo $dir
./ 名.sh(第一种执行脚本)
sh 名.sh(第二种执行脚本)
### read相当于python中的input
read -p "描述" : 变量名
### 参数传递
$1:接收第一个参数~~$n
$n: 文件名称
$@: 所有参数 s
$#: 参数个数 $0
### 比较运算符和逻辑运算符
-eq 比较是否相等 equal
-ne 比较不相等 not equal
-gt 比较大于 greater than
-ge 比较大于等于 greater equal
-lt 比较小于 less than
-le 比较小于等于 less equal
### 比较运算符(字符串)
== 比较是否相等
!= 比较不相等
### 逻辑运算符
-a 逻辑与 -o逻辑或 !逻辑非
and or
### if语句
if [ 条件 ]
then
语句
else
语句
fi
### 多条件语句格式;if [ 条件 ]
then
语句
elif [ 条件 ]
then
语句
......
else
语句
fi
if [ 条件 ]
then
语句
else
语句
fi
### case规则(结束时两个;;)
case $变量名 in
"值")
语句;;
"值")
语句;;
.....
esac
### for循环
for 变量 in 列表
do
语句
done
### while循环
while [ 条 件 ]
do
语句
done