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是一个简易的系统自带的计算机程序,可以执行整数,也可以计算小数

相关推荐
GIS程序媛—椰子1 小时前
【Vue 全家桶】7、Vue UI组件库(更新中)
前端·vue.js
DogEgg_0011 小时前
前端八股文(一)HTML 持续更新中。。。
前端·html
ZL不懂前端1 小时前
Content Security Policy (CSP)
前端·javascript·面试
木舟10091 小时前
ffmpeg重复回听音频流,时长叠加问题
前端
王大锤43911 小时前
golang通用后台管理系统07(后台与若依前端对接)
开发语言·前端·golang
我血条子呢2 小时前
[Vue]防止路由重复跳转
前端·javascript·vue.js
黎金安2 小时前
前端第二次作业
前端·css·css3
啦啦右一2 小时前
前端 | MYTED单篇TED词汇学习功能优化
前端·学习
半开半落2 小时前
nuxt3安装pinia报错500[vite-node] [ERR_LOAD_URL]问题解决
前端·javascript·vue.js·nuxt