shell脚本

shell脚本概念
将要执行的命令按顺序保存到一个文本文件
给该文件可执行权限
可结合各种Shell控制语句以完成更复杂的操作
Shell脚本应用场景
重复性操作
交互性任务
批量事务处理
服务运行状态监控
定时任务执行
shell的作用
shell是一个特殊的应用程序,它介于操作系统内核和用户之间,充当了一个“命令解释器”的角色,负责接收用户输入的操作指令并进行解释,将需要执行的操作传递给内核执行,并输出执行结果
在这里插入图片描述
linux中有哪些Shell
在这里插入图片描述
/bin/bash是默认的shell脚本

编写脚本规范
使用vim编辑器
“#!/bin/bash":脚本申明(解释器) 若第一行为 表示此行以下的代码语句是 通过/bin/bash程序来解释执行
#:表示注释信息 不执行
echo:输出“ ”之间字符串
Shell脚本执行方法
一:指定路径的命令,要求文件必须有x权限
[root@localhost ~]#chmod +x /root/first.sh
[root@localhost ~]#cd /root/
[root@localhost ~]#./first.sh
当前目录位于:
/root
二:指定Shell来解释脚本,不要求文件必须有x权限。
[root@localhost ~]#bash first.sh
当前目录位于:
/root
三:source 脚本路径执行shell脚本
[root@localhost ~]#source first.sh
当前目录位于:
/root

命名要求
区分大小写
不能使程序中的保留字和内置变量:如: if, for, hostname
只能使用数字、字母及下划线,且不能以数字开头,注意:不支持短横线“-",和主机名相反
不要使用内置的变量,使用英文尽量使用词义通俗易懂,PATH
驼峰StudentFirstName
小驼峰studentFirstName·
下划线: student_name

管道操作
管道操作为不同命令之间的协同工作提供了一种机制 位于管道符 | 左侧的命令输出的结果 作为右侧命令的输入对象
重定向
在这里插入图片描述
在这里插入图片描述
#将12345678输入到文件log.txt中
[root@localhost ~]#echo “12345678” > log.txt
[root@localhost ~]#cat log.txt
12345678
[root@localhost ~]#

#再将112234写入log.txt中,这个时候会覆盖原来的数据
[root@localhost ~]#echo “112234” > log.txt
[root@localhost ~]#cat log.txt
112234
[root@localhost ~]#

#继续将112234写入log.txt中,使用>>,这个时候会追加原来的数据
[root@localhost ~]#echo “112234” >> log.txt
[root@localhost ~]#cat log.txt
112234
112234

变量
shell变量用来存放系统和用户需要使用的特定参数 根据用户设定或系统环境的变化而变化 包括 自定义变量 环境变量 位置变量 预定义变量

定义变量
格式:变量名=变量值
[root@localhost ~]#abc=123
查看变量
格式:echo $变量名
[root@localhost ~]#echo $abc
123

引号
双引号:允许通过$符号引用其他变量值
单引号:禁止引用其他变量值, $视为普通字符
反撇号:命令替换 提取命令执行后的输出结果 与 $()用法相同
大括号:分割变量值

变量赋值 read
格式
read -p 提示信息 变量名
echo $变量名
在这里插入图片描述
变量范围
默认情况下,新定义的变量只在当前的Shell环境中有效,因此称为局部变量。当进入子程序或新的子Shell环境时局部变量将无法再使用。
可以通过内部命令export将指定的变量导出为全局变量,使用户定义的变量在所有的子Shell环境中能够继续使用。
格式:export 变量名=变量值
配置文件:/etc/profile
在这里插入图片描述
数值变量的运算
运算符:+ 加法、- 减法、* 乘法、/除法、% 取余

expr 变量1 运算符 变量2
var=$(expr 变量1 运算符 变量2)
=((变量1 运算符 变量2))
=[变量1 运算符 变量2]
let var=变量1 运算符 变量2

在这里插入图片描述

使用管道符
[root@localhost data]#echo 1 + 2|bc
3

expr不可计算小数,并且变量和运算符之间需要空格分隔
[root@localhost data]#expr 1 + 2
3

计算乘法时,需要使用“\”转义符
[root@localhost data]#expr 1 * 2
2

取余只需要除后的余数
[root@localhost data]#expr 3 % 2
1

使用let
[root@localhost data]#a=2
[root@localhost data]#b=3
[root@localhost data]#z=0;let z=a+b;echo $z
5

i++和++i
[root@localhost data]#i=1;j=1;let j=i++;echo $i $j
2 1
[root@localhost data]#i=1;j=1;let j=++i;echo $i $j
2 2

预定义变量
bash程序预先定义好的一类特殊变量 只能使用 不能创建 也不能赋值
在这里插入图片描述
环境变量
使用 env 命令可以查看到当前工作环境下的环境变量
USER表示用户名称,HOME表示用户的宿主目录,LANG表示语言和字符集,PWD表示当前所在的工作目录,变量PATH表示可执行程序的默认搜索路径

位置变量
当执行命令行操作时,第一个字段表示命令名或脚本程序名,其余的字符串参数按照从左到右的顺序依次赋值给位置变量。

$n:n为数字,$0代表命令本身,1~9代表第一个到第九个参数,十以上的参数需要使用大括号表示,比如第十个参数为 ${10}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值