编写shell脚本之前我们需要知道什么是shell脚本,shell脚本能做什么。
一.简介
什么是shell脚本
-
将要执行的Linux命令保存到一个文件中,然后通过执行这个文件来批量自动执行命令
作用
-
批量执行操作
-
重复执行操作
二.编写shell脚本的基本流程
1.#使用vim在/home/下创建一个名为demo1.sh的文件
[root@localhost ~]# vim /home/demo1.sh
2.#在.sh文件中输入内容,脚本内容第一行格式固定
#!/bin/bash
3.#输入一些基本命令#创建一个名为tom的用户
useradd tom
#touch /home/a.doc #在home下创建一个名为a.doc的文件
保存内容并退出
4.为脚本设置执行权限chmod +x /home/demo1.sh
5.执行脚本方法1:bash 脚本名
[root@localhost ~]# bash /home/demo1.sh
方法2:./脚本名[root@localhost ~]# ./demo1.sh
三.变量
-
定义变量:变量名=变量值
-
获取变量:$变量名
# 定义变量 [root@localhost ~]# name=tom [root@localhost ~]# addr=shanxi [root@localhost ~]# tel=176xxxxxxxx [root@localhost ~]# mail=xxxx@.com #使用变量进行输出# echo:打印输出一个结果到屏幕 [root@localhost ~]# echo "我的姓名是$name,我的家在$addr, 我的电话是$tel"输出结果:我的名字是tom,我的家在shanxi,我的电话号码是176xxxxxxxx,我的邮箱是xxxx@.com
四.判断
-
单分支语句结构
if [ 条件表达式 ]; then 指令 fi #这段代码的意思是满足[ 条件表达式 ]中的条件则进行指令中的命令
-
双分支语句结构
if [ 条件表达式 ]; then 指令一 else 指令二 fi #这段代码的意思是满足[ 条件表达式 ]中的条件则进行指令一中的命令 #如果不满足[ 条件表达式 ]中的条件则进行指令二中的命令
-
多分支语句结构
if [ -f file ]; then echo "yes yes yes" elif [ -d file ]; then echo "yes yes" else echo "nonono" fi #这段代码的意思是满足[ -f file ]中的条件则输出yes yes yes [ -f file ] 测试file存在为真且是一个常规文件 #如果不满足[ -f file ]中的条件则在进行判断[ -d file ]条件满足则输出yes yes [ -d file ] 测试file存在为真且是一个目录文件 #如果不满足[ -d file ]则输出nonono
注意 if的结构为 if then else fi
从上面三个结构中可以看出,条件表达式的左右,以及[ ]的左右都要有空格。
数字表达式
int1 -eq int2 两数相等为真
int1 -ne int2 两数不等为真
int1 -gt int2 int1大于int2为真
int1 -ge int2 int1大于等于int2为真
int1 -lt int2 int1小于int2为真
int1 -le int2 int1小于等于int2为真
五.循环
for语句结构
读取不同的变量值,用来逐个执行同一组命令
#!/bin/bash
for num in {1..10}do
echo $num
sleep 1
done
#创建一个变量num变量的取值为{1..10}循环#输出num变量 sleep表示间隔为 1S
while循环
#!/bin/bash
a=$[$RANDOMP0] #在500中取随机数
while true
do
read -p "enter a number: " input
if [[ $input -gt $a ]];then #判断变量input是否大于变量a
echo "big" #大于a则输出 big
continue #终止当前重新进行循环
elif [[ $input -lt $a ]];then #判断变量input是否小于变量a
echo "little" #小于则输出 little
continue
else
echo "equal"
exit #停止程序
fi done
until循环
重复测试某个条件,只要条件不成立则反复循环
#!/bin/bashn=1until
[ $n -gt 50 ]; #创建一个条件 $n大于50
do
let sum+=$n #计算 sum+=变量n
let n++ #n++每次循环加一
done
echo "$sum" #输出变量sum
以上就是shell脚本中的基本内容
版权声明:本文为weixin_67281781原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。