shell脚本编程

本文介绍了shell脚本的基础知识,包括如何使用vi/vim编写shell脚本,指定解释器,注释规则,赋权执行,变量的定义和使用,用户交互,四则运算,以及命令执行状态和输出重定向的处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1,shell简介

shell脚本就是一个文件

在文件中包含了要批量自动执行的命令

写shell脚本的基本规范

第一步:用vi/vim创建一个后缀是.sh的文件
第二步:在文件中写入内容
第一行是:#!/bin/bash 指定程序的解释器
从第二行开始是文件的正文
第三步:保存退出
第四步:给shell脚本赋权【赋予执行权限 x】
第五步:执行shell脚本

vi/vim

vim是vi的升级版
建议用vim
可能需要安装vim
安装vim的方法:
1)配置好yum源
2)开始安装:yum install vim -y

shell脚本的注释

shell脚本中,是用#进行注释

关于脚本赋权

写法1:
chmod +x 脚本
写法2:
chmod 777 脚本
执行shell脚本
./脚本

案例

#!/bin/bash
echo "hello boys"
echo "程序开始执行......"
echo "当前用户是 `whoami`"
echo "当前主机的地址是:`ip addr s ens33 | awk -F "[/ ]+" 'NR==3{print $3}'`"
echo "程序执行结束....."

2,变量

什么是变量

值会发生变量的对象
name="tom"
name是变量名
tom是变量的值

定义变量

1)定义的格式

变量名=变量值 【=两边不能留空格】
变量名不能用引号
变量值可以用引号
变量值是数字类型,则不用引号
变量值是字符串类型,则必须用引号

2)变量名的要求

只能有数字、字母、下划线( _ )
不能以数字为开头
变量名要做到见名知道意
建议定义格式
单驼峰格式:stuName
双驼峰格式:StuName
下划线拼接:stu_name

使用变量

$变量名

注意:关于单双引号的问题

''无法将变量名替换成变量的值

案例:

定义变量animal=dog,输出结果是 there are many dogs
#!/bin/bash
animal="dog"
echo "there are many ${animal}s"

3,用户交互

格式

read -p "给用户的提示:" 变量名
提示信息是给用户看的
用户输入的内容会保存到后面这个变量中

案例

#!/bin/bash
read -p "请输入你的姓名:" stuName
read -p "请输入你的年龄:" stuAge
read -p "请输入你的性别:" stuSex
echo "欢迎:$stuName, 你的年龄是$stuAge,性别是$stuSex"

4,四则运算

shell中,默认会将变量作为字符串,包括数字

格式:

$[数学表达式]

案例

[root@localhost ~]# num1=3
[root@localhost ~]# num2=5
[root@localhost ~]#
[root@localhost ~]# echo "$[$num1*$num2]"
15
[root@localhost ~]#
[root@localhost ~]#
[root@localhost ~]# echo "$[$num1/$num2]"
0
[root@localhost ~]#
[root@localhost ~]#
[root@localhost ~]# echo "$[$num2/$num1]"
1
[root@localhost ~]#
[root@localhost ~]#
[root@localhost ~]# echo "$[$num2%$num1]"
2
[root@localhost ~]#
[root@localhost ~]#
[root@localhost ~]# echo "$[$num1%$num2]"
3
让用户输入三个数字,输出三个数字的和
#!/bin/bash
read -p "请输入第一个数字:" num1
read -p "请输入第二个数字:" num2
read -p "请输入第三个数字:" num3
sum=$[$num1+$num2+$num3]
echo "三个数字的和:$sum"

5,补充内容

命令执行状态值
输出结果重定向

命令执行状态值

执行状态是用来表示命令执行成功还是执行失败
命令的执行状态值,默认是不显示的
linux命令执行成功,用0表示
linux命令执行失败,用非0表示
用linux的内置变量$?可以查看 最近的一个命令 的执行状态值

命令的执行输出有两种结果

输出结果:直接显示在终端上,给用户看的
状态结果:是给系统看的

输出重定向

输出重定向就是将原本要输出在终端中的内容,保存到一个文件中
重定向分为三种:
正确输出重定向(1,默认就是1,所以可以省略)
错误输出重定向(2,)
全部输出重定向(&)

两种方法

> 将命令的输出结果保存到一个文件中
如果文件不存在,就会创建一个新文件,让后将命令输出结果保存进去
如果文件存在,那么会将文件中原有内容清空,然后将命令输出结果保存进去
>> 将命令的输出结果保存到一个文件中
如果文件不存在,就会创建一个新文件,让后将命令输出结果保存进去
如果文件存在,那么在文件中原有内容后进行追加
让用户输入一个用户名,判断这个用户是否存在
#!/bin/bash
read -p "请输出一个用户:" userName
id $userName &>/dev/null
echo "判断用户执行结果:$?"

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值