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的执行方式

三种执行方式:

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

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

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

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

只是在子shell里面展示出来,并没有真正的运行

运行一个脚本之前先调试,调试就会用到sh   bash 调试的目的就是来证明这个脚本是否能够正常运行

正真运行脚本是source(点命令)

第二种:

脚本调试完毕,都是赋权执行。赋予他执行权限

和sh bash不同,他也是被真正执行了

在当前目录用./ 在非当前目录中就要用到绝对路径


重定向操作

正常执行是标准输入

有标准输入就有标准输出

标准错误输出(报错)

重定向的类型:

重定向输出:> >> > 标准输出的结果保存到指定的文件,而且会覆盖文件原有的内容。

这是标准输出的结果 ,错误的输出则不会被保存。

 ">>" 标准输出的结果保存到文件,原有的内容尾部追加内容,不会覆盖原有的内容。

2 > 标准错误的输出结果,保存到指定的文件。

2>>标准错误的输出结果,原有的内容尾部追加内容,不会覆盖原有的内容。

&> &>> 混合输出,既可以保存标准输出,也可以保存标准错误输出。

 重定向输入: < 从指定的文件获取数据。


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

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

变量的类型:

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

变量名的规范:

1、不要使用系统的命令作为变量名

2、不要使用中文

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

4、变量名我们一般会使用对应的英文名称来使用,computer stu mumber num

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

变量值: int 整数 string 字符串 (如果声明字符串要用双引号) 浮点 0.12 布尔 true false

int a=12

运算的结果

双引号,单引号,反撇号之间的作用和区别:

弱引用和强引用

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

 

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

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

自定义输入变量值

如何自定义输入变量的值

read -p “提示信息”(必须要有双引号)

-p 指定提示符 ,提示符的内容包含在双引号中间,双引号之间的内容可以不写,但是双引号必须要有

还有另外一种方式在命令行里面进行运算

先删除上面两行,保留结果显示

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

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

持久性

共享性

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

进入文本编辑器

然后再source一下让他生效。

我们再打开另外一个窗口

管理员和普通用户都能进行这个运算。

排错的方法:bash -x +脚本名

会把每一步都打印出来,这样方便定位哪一步有问题。

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

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

echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

可执行的命令,或者可执行的程序的默认路径。

位置变量 又叫做命令行参数,是在脚本的外面给脚本内部传值。

$1 $2 $3 $4 .....$9

从第一个到第九个

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

${10} ${11}

预定义变量 编程语言和解释器提供的,用户无法更改。只能由系统自行更新和设备。

$* 和$@ :表示命令或者脚本需要处理的参数,二者的区别在于处理方式的不同。

$* 和$@不加引号的表现一致,都是把参数一个一个处理。

$*加了引号,会把参数当成一个整体来进行处理。

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

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

只有0表示成功

所有非0都表示失败

返回上一次执行的命令的状态码。

如果不加引号会是什么样子的

不加引号会把你的参数单个单个的处理。

换成$@会是什么样子的

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

还有另外一种在命令行里面运算

但是这个不能在文本编辑器里面进行操作

i++ 先赋值,再加1

i=$(($i+1))

i=1  i+1=2

i=2  2+1=3

++i先加再赋值

1+0=1 i+1

1+1=2 i=2

i--先赋值,再减1

--i 先减再赋值

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值