shell脚本

1、概念

脚本:可运行的代码的集合

脚本语言(计算机语言)

特点:从上到下,按行执行

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

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

2、目的

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

3、shell的解释器

sh:已经被淘汰

bash:sh的扩展版(默认就是bash)

csh:类c语言

tcsh:整合了c语言的shell

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

4、shell的作用

1、自动化运维

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

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

4、避免配置出错

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

5、shell脚本的构成

第一行:#!/bin/bash 声明shell的解释器(默认就是bash,可以不写)只要不是默认的shell,其他的都要声明解释器

注释:以#开头就是注释的信息,注释的部分不会被执行,声明步骤的含义

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

6、shell的执行方式

6.1不给脚本执行权限的执行方式

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

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

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

6.2赋权执行

脚本调试完毕都是赋权执行

7、重定向操作

标准输入

标准输出

标准错误输出:结果报错,未找到命令

重定向类型:

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

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

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

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

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

8、变量的作用和类型

8.1作用

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

8.2类型

8.2.1自定义变量

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

8.2.1.1变量名的规范

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

2、不要使用中文

3、不要使用特殊符号开头,可以用_开头,不要使用数字开头

4、变量名一般会使用对应的英文名

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

8.2.1.2变量值

int:整数类型

string:字符串类型,需要用(单/双)引号" "引起来

浮点:0.12

布尔:true false

打印的时候变量前面加$      echo $a

8.2.1.3双引号、单引号、反撇号之间的作用和区别

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

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

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

8.2.1.4自定义输入变量的值

read -p "提示信息:" a

read -p "数字b:" b

c=$(($a+$b))

echo $c

-p:指定提示符,提示符的内容包含在" "中间," "可以为空,但是双引号必须要有

8.2.2全局变量

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

特点:全局生效,每个脚本的变量的值是固定的

持久性

共享性

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

进入全局配置文件,对所有窗口生效

新窗口也生效

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

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

8.2.3环境变量

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

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

env查看环境变量

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

8.2.4位置变量

又叫命令行参数,是在脚本的外面给脚本内部传值

$1 $2 $3 $4......$9 从第一个到第九个

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

${10} ${11}

8.2.5预定义变量

编程语言和解释器提供的,用户无法更改,只能由系统自行更新和设置

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

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

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

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

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

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

9、整数运算

+ - * / %(取余)

(1)c=$(($a+$b))

(2)c=$(expr $a \* $b)

(3)let c=$a+$b

10、小数运算

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

c=$(echo "$a+$b" | bc)

awk 'BEGIN{print 2.35*4.99}'

11、i++、++i、i--、--i之间的区别

i=$(($i+1))

i++:先赋值,再加1

++i:先加再赋值

i=$(($i+1))

i--:先赋值,再减1

--i:先减再赋值

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值