shell脚本的编写规范和变量类型

本文介绍了shell在人机交互中的作用,区分了不同类型的shell,如bash和tcsh,概述了shell脚本的用途、结构,包括变量管理和赋权执行,以及如何使用shell脚本进行自动化运维和错误处理。
摘要由CSDN通过智能技术生成

shell是什么?

shell介于人和计算机之间(翻译官)

人类有人类语言,计算机有计算机语言。shell翻译人类语言和计算机语言。

shell类型

/bin/sh:已被淘汰

/bin/bash:现在常用的,也是linux默认的shell (管理员)

/usr/bin/sh:也被淘汰

/usr/bin/bash:现在常用的,也是linux默认的shell (普通用户)

/bin/tcsh:基于tcsh,提供更多的扩展功能

/bin/csh:类C语言shell

我们默认使用的shell就是bash

查看用户使用的shell

cat /etc/passwd(查看用户信息)

shel脚本

脚本语言:扩建语言,也可理解为动态语言,也是是编程语言的一种,主要用来控制软件应用程序。都是以文本形式保存,只要在被调用的时候,文本代码才会被解释或编译,执行。

创建脚本:

.sh 约定成俗的习惯,都以.sh结尾,表示shell脚本

shell脚本的作用:

1.自动化运维(配合定时任务执行)

2.批量化重复操作可以通过脚本执行,减少人工的重复输入

3.减轻了管理员的工作量

4.提高了处理文件的速度

5.避免配置出错

shell脚本的组成结构:

1.声明解释器

2.#表示注释,注释掉的代码不会被执行,而且是按行进行注释

3.脚本当中的语句,linux的可执行命令都可以做为shell脚本的语句

#可执行语句:

命令行可执行(只要是linux命令)都可以作为可执行语句。

脚本当中内容执行顺序是从上到下,依次按行执行。

4.脚本当中的语句按照从上到下,依次按行执行

shell的执行方式:

1.不赋权执行(脚本调试)

sh 脚本名

source 脚本名

source命令:.命令

对于刚刚修改的文件进行初始化操作。(文件的内容都是shell语句,都是可执行的命令)执行source可以不需要重启,使更改的内容直接生效。

sh:只在当前环境运行,并不涉及子shell环境切换。

source:新建一个shell继续执行,而且所有的执行结果都会保存在这个shell里面

2.赋权执行(执行权限)

赋权执行:

chmod 777

./first.sh  在当前目录可以直接执行

/opt/first.sh 绝对路径来写

需要执行的脚本不能放在用户的家目录

最好放在opt目录下

结合定时任务执行,必须要绝对路径

标准输入:键盘,文件编号是0,我们执行的命令结果。例:ls  cd/opt

标准输出:显示器,显示输出的结果

标准错误:显示器,显示错误的输入信息。例:LS

重定向

重定向输出:将标准输出的内容保存到指定的文件,覆盖文件当中的原有内容,>  >>也是重定向输出,在文件内容的尾部追加,不覆盖文件的原有内容。

重定向错误输出:2>   2>>

混合输出:&>  会覆盖原有内容  & >>行后添加不会原有内容

既可以保存错误输出也可以保存正确输出

重定向输入

一定要关闭安全机制!

怎么在shell脚本中定义变量,以及shell脚本的变量类型shell的运算符

变量:面向对象,对象的名称和属性

名称:变量名

属性:变量值,对象的描述信息

Int:整数类型

string:字符串类型

布尔:true false

浮点:1.2.3.4.5.6

变量名=属性值

打印变量值

(这里是实验环境就用a=abc,简单方便)

变量的命令规范(自定义变量)

1.不要使用linux系统命令作为变量名。

2.不要使用中文。

3.不要使用特殊符号作为变量名称的开头,可以使用_可以作为变量的开头。

4.默认规则:学生:student stu=  秒:sec  计算机:computer

5.默认加上注释的,变量名的引用保持前后一致。

(4,5都是默认的)

自定义变量:

在自定义变量当中:“” ‘’ ``

整数类型可以不加引号,赋值为字符串类型,最好加上引号,以避免歧义。

在给变量赋值时,单引号和双引号一样,不影响变量的值

``:命令替换,先执行反撇号当中的命令,然后再把命令执行的结果赋值给变量

打印变量时双引号和单引号机制不同

echo “$a” 弱引用,原变量的值不变。

echo ‘$a’  强引用,变量值将不在打印,就是$a这个字符串

echo“${a}”:保证一定能够正确的识别变量值(避免出现歧义)

变量赋值

read命令的方式获取变量

read -p“提示信息”变量名

变量的作用范围

默认情况,新定义的变量只在当前的shell环境中生效

全局变量:

export 变量名=变量值

注意:变量如果不添加到配置文件中都是暂时的

需要在一整套环境当中引用唯一且不需要变化的变量时,才会声明全局变量。

在底行添加

立即生效

环境变量:

系统提前创建,用户也可以添加。设置用户的工作环境,配置系统行为,控制程序执行。

特殊的全局变量

用户级环境变量:只对当前用户可见

预定义环境变量:系统预设,所有都可以见,相当于全局变量

自定义的环境变量:特殊的全局变量,只对设置用户有效

常用的环境变量:

$USER:显示用户的名称

$HOME:用户的家目录

$PWD:表示当前所在的工作目录

$PATH:可执行用户程序的默认路径

位置变量:

也叫作命令行参数,在脚本或者程序运行时,传递给他们的值,而且位置变量在脚本外部传递变量值。

预定义变量:

编程语言或者脚本解释器提供的,不能修改的,只能根据需要自动设置或者更新。

$*和$@:表示命令或者脚本需要处理的参数

$*和$@:不加引号表现一致,都会把参数分行处理

$*:加上双引号,会把参数当成一行进行处理

$#:显示需要处理的参数个数

$?:表示前一条命令或者脚本执行之后的返回状态码,只有返回0表示执行成功,所有非0全部表示失败。也可以用在函数中做为return的返回值

shell脚本当中整数的运算方式:(只能做整数运算)

c=$((12+5))   let c=12*5  主用这两个

c=$[12*5]    c=$(expr 12+5)  乘法不一样 c=$(expr 12\*5)

运算符号

+:加  -:减  *:乘  /:除(无法算小数)

%:取余 例6%5=1(余数为1)

浮点运算

num=$(awk 'BEGIN{print 4.65+3.33}')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值