day28shell编程基础

老男孩思想

[图片上传失败...(image-156922-1555256899630)]

信念就是在潜意识层面相信自己能行,其实就是强烈的自信心

今天的课堂内容是shell编程基础

为什么要学shell编程

Linux系统中会大量的使用shell,工作中我们也需要自动化实现业务。

例如:自动备份 。监控。自动安装服务。

shell编程是Linux运维人员必须要会的编程语言。最简单的编程语言。

编程是运维人员必须具备的本领:

shell .python是运维人员的必须具备本领

shell什么是shell

shell 编程3小时光速入门

shell 就是一个解释器,命令行的命令以及脚本都会通过shell解释器,传给操作系统,处理后在输出给系统,处理后在输出给用户。

tailf -1 /etc/passwd

centos 7所支持的shell

[图片上传失败...(image-ad92c4-1555256899630)]

[图片上传失败...(image-ee9fd7-1555256899630)]

C shell

C shell 有包括csh tchsh

centos 7 默认的shell 可以用echo $SHELL

默认的shell /bin/bash

5.什么是shell 脚本?

程序。命令放入文件里执行,这个文件我们成为shell脚本文件。

工作中最多的编程写脚本,存放在文件里。

6.shell 的变量:

a.全局变量(环境变量)

在整个系统中生效,一般都大写,系统中会默认就存在这样的一些变量,就满足系统和程序运行的需求举例:echo $PS1,

[图片上传失败...(image-25fb29-1555256899630)]

自定义环境变量:

1.export OLDBOY="I am oldboy"

2.OLDBOY =I am oldboy

export

在当前用户生效,的临时变量,去其他用户下就不生效了。

如果想让他永久生效就要加到/etc/profile==>/.bash_profile==>/.bashrc==>/etc/bashrc

环境变量推荐写到etc/bashrc。把要加的变量放在bashrc的里面最下一行。然后可以用tail -1 /etc/bashrc查看

安装Java服务时就会需要环境变量

b.(局部变量)

是编写shell脚本最常用的变量。

变量名=值

a=1

变量名:数字,字母,下划线,不能是数字开头。

oldboy , 123a , _abc

=等号:赋值符,把什么东西给谁

值:东西,变量内容。

引用内容的符号:单引号,双引号,反引号,不加引号。

先赋值什么等于什么,a=1

然后用echo $a

[图片上传失败...(image-a79bcf-1555256899630)]

[图片上传失败...(image-48dad6-1555256899630)]

学习要学会反推。

let 让 let 让实现加法

7.表达式

[表达式] 中括号表达式,中括号两边必须有空格

[图片上传失败...(image-71056-1555256899630)]

[图片上传失败...(image-f3aa19-1555256899630)]

[图片上传失败...(image-25b324-1555256899630)]

[图片上传失败...(image-934f13-1555256899630)]

证书表达式

[图片上传失败...(image-e33129-1555256899630)]

man test里面查记忆方法

[图片上传失败...(image-1060f5-1555256899630)]

正整数表达式符 两面要有空格

中括号两端要有空格

变量和比较的内容,不加引号

字符表达式:

-z 变量为空 字符串长度为0,时为真(表达式正确)。zero

-n 变量内的长度不为0时,为真(表达式正确)。not zero

a == a双等号是相同的意思,单等号是赋值。

1)字符串要加双引号

字符串和不是正数要加双引号

[图片上传失败...(image-d9084a-1555256899630)]

[图片上传失败...(image-766823-1555256899630)]

[图片上传失败...(image-3109b4-1555256899630)]

[图片上传失败...(image-fd2c12-1555256899630)]

书写脚本习惯

1.以.sh结尾。

2.脚本开头第一行#!/bin/bash 脚本内容由谁解释。

由于Linux下默认是bash,所以也可以不写这一行。

[图片上传失败...(image-b6406a-1555256899630)]

交互式写法:先读入 交互式

[图片上传失败...(image-a7a14d-1555256899630)]

[图片上传失败...(image-4cb90a-1555256899630)]

$1脚本文件的第一个参数

$2脚本文件的第二个参数

9.for 循环

for n in 取值列表

do

执行命令

done

[图片上传失败...(image-7f4b01-1555256899630)]

[图片上传失败...(image-a48d8f-1555256899630)]

[图片上传失败...(image-d4f5ea-1555256899630)]

就会报这样的错

[图片上传失败...(image-3e26f7-1555256899630)]

[图片上传失败...(image-2e8181-1555256899630)]

1、比较整数大小。

2、判断日期,每周六日去旅游,其它时间上课。

3、取出当前系统Ip地址,判断是否为10.0.0.31,如果是提示正确,如果不是给出提示。

4、打印10.0.0.1--10.0.0.254个Ip地址,当IP地址为系统IP地址时,给出某IP是系统IP的提示。

-gt

= -ge

< -lt

<= -le

= -eq

不等于 -ne

你可能感兴趣的:(day28shell编程基础)