shell脚本

shell脚本

脚本就是可运行的代码的集合,脚本语言(计算机语言)

脚本的特点:从上到下,按行执行

python 脚本语言 格式更严谨严格执行缩进。也是从上到下按行执行

shell脚本就是在shell环境(/bin/bash)bash就是shell的解释器。Linux环境下的编程语句。

自动化运维。可重复执行的,自动化的在系统中实现增删改查的操作。

shell的解释器,默认就是bash

sh:已经淘汰

bash:sh的扩展版

csh:类C语言

tcsh:整合了c语言的shell

nologin:用户无法登录到系统的shell

shell的作用:

1.自动化运维

2.批量化的重复操作以及配合定时任务执行

3.有了脚本就可以减轻管理员的工作量

4.避免配置出错

5.提高处理批量文件的速度

shell脚本的构成:

第一行:声明解释器(默认就是bash,可以不写)

注释:以#开头,就是注释的信息,注释的部分不会被执行

可执行语句:Linux的命令都可以作为可执行语句,一行一行的往下写,一行就是一个可执行语句。

shell的执行方式:3种

第一种:不给脚本执行权限的执行方式:

sh:在当前的shell里生成一个子shell,运行结果不改变父shell的环境

source:点命令,它会改变当前shell的环境,也就是真正的执行代码。

bash:在当前的shell里生成一个子shell,运行结果不改变父shell的环境

第二种:脚本调试完毕,都是赋权执行。

当前路径 ./test.sh

非当前路径用绝对路径 /opt/test.sh

重定向操作:

重定向输出 操作符 用途
重定向输出 >> 标准输出的结果保存到文件,在原有内容的尾部追加内容,不会覆盖原有的内容
重定向输出 > 只能把标准输出的结果保存到指定的文件,而且会覆盖文件原有的内容
重定向输出 2> 只能把标准错误输出的结果,保存到指定的文件,会覆盖文件原有的内容
重定向输出 2>> 只能把标准错误输出的结果,保存到指定的文件尾部,不会覆盖原有的内容
重定向输出 &> 混合输出,既可以保存标准输出,也可以保持标准错误输出,会覆盖文件原有的内容
重定向输出 &>> 混合输出,保存到指定的文件尾部,不会覆盖原有的内容
重定向输入 < 从指定的文件获取数据

变量的作用和类型,如何声明变量。

变量的作用:用来存放系统和用户需要使用的设定的参数,变量保存在内存中。调用的时候,直接到内存当中查找变量所在的内存地址。

变量的类型:

自定义变量名称由用户自己定义 值也可以自定义

变量名的规范:

1.不要使用身体的命令作为变量名

2.不要使用中文

3.不要使用特殊符号开头可以用下划线开头,不要使用数字开头

4.变量名一般会使用对应的英文名称来使用

5.变量名要保持前后一致,要有注释,提高代码的可读性

变量值:

int 整数

string 字符串 声明字符串用双引号引起来

true/false 布尔

float 浮点

bash 复制代码
#自定义输入变量的值
read -p "提示信息:" a
read -p "数字b:" b
c=$(($a+$b))
echo $c
#-p	指定提示符,提示符的内容包含在""中间,""可以为空,但是必须要有

双引号就是弱引用,变量值就是变量值本身

单引号就是强引用,变量值不再是本身定义的值,保持自身的字符串形式

反撇号的作用是命令替换,把命令执行的结果传给变量,作为变量的值,先执行命令,再给变量赋值。

全局变量 对整个系统生效,所有用户都可以使用

bash 复制代码
export a
a = 1
export b
b = 5
#如果要永久生效,进配置文件修改	vim /etc/profilr

全局生效,每个脚本的变量值,固定的。

持久性

共享性

全局变量适用于不需要经常更改的值

排错的方法:bash -x 脚本名 会把每一步都打印出来,这样方便定位

环境变量 环境变量是系统创建的,用来设置用户的工作环境

环境变量可以理解为特殊的全局变量,/etc/profile配置文件

echo $PATH 可执行的命令,或者可执行的程序的默认路径

位置变量(命令行参数) 在脚本外面给脚本内部传值

1 2 3 ...9

${10} 10以后要用{}把数字括起来

预定义变量 编程语言和解释器提供的,用户无法更改。只能由系统自行更新和设定
$*和$@:表示命令或者脚本需要处理的参数。二者的区别在于处理方式的不同。
$*和$@不加引号的表现一致,都是把参数一个一个处理
$*加了引号,会把参数当成一个整体来处理

$#也是一个全局变量,统计传递给脚本或者函数的参数个数

$? true false 命令执行之后返回的状态码

只有0表示成功所有非0都表示失败返回上一次执行的命令的状态码

小数运算:bc是一个简易的系统自带的计算机程序,可以执行整数,也可以计算小数

相关推荐
zhougl9961 小时前
html处理Base文件流
linux·前端·html
花花鱼1 小时前
node-modules-inspector 可视化node_modules
前端·javascript·vue.js
HBR666_1 小时前
marked库(高效将 Markdown 转换为 HTML 的利器)
前端·markdown
careybobo2 小时前
海康摄像头通过Web插件进行预览播放和控制
前端
杉之4 小时前
常见前端GET请求以及对应的Spring后端接收接口写法
java·前端·后端·spring·vue
喝拿铁写前端4 小时前
字段聚类,到底有什么用?——从系统混乱到结构认知的第一步
前端
再学一点就睡4 小时前
大文件上传之切片上传以及开发全流程之前端篇
前端·javascript
木木黄木木5 小时前
html5炫酷图片悬停效果实现详解
前端·html·html5
请来次降维打击!!!6 小时前
优选算法系列(5.位运算)
java·前端·c++·算法
難釋懷6 小时前
JavaScript基础-移动端常见特效
开发语言·前端·javascript